知识大全 ADO.NET操纵数据库
Posted 知
篇首语:案头见蠹鱼,犹胜凡俦侣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ADO.NET操纵数据库相关的知识,希望对你有一定的参考价值。
ADO.NET操纵数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ADO NET提供了Connection来连接数据库 同时也提供了Command对象来查询数据库 同Connection对象一样 Command也有两种 OleDbCommand和SqlCommand 其区别同Connection对象
要操纵数据库 必须先使用Connection来连接到数据库 再创建一个Command来查询 有几种创建方式 例
SqlCommand cmd
string strCon= server=localhost database=Northwind Trusted_Connection=Yes string strqry= select * from Categories SqlConnection con=new SqlConnection(strCon) con Open() cmd=con CreateCommand() //这里使用用Connection对象的CreateCommand方法来创建一个Command对象
cmd CommandText=strqry // SqlDataReader reader=cmd ExecuteReader()
cmd=new SqlCommand() //直接使用new 关键字来创建cmd CommandText=strqry cmd Connection=con //设置与数据库的连接
cmd=new SqlCommand(strqry con) //直接在new的时候带两个参数来创建
执行方式
(主要有这么几种 cmd ExecuteReader() cmd ExecuteNonQuery() cmd ExecuteScalar() cmd ExecuteXmlReader() )
1 ExecuteReader() 返回一个SqlDataReader对象或OleDbDataReader对象 这个看你的程序的需要去 做 可以通过这个对象来检查查询结果 它提供了 游水 式的执行方式 即从结果中读取一行之后 移动到另一行 则前一行就无法再用 有一点要注意的是执行之后 要等到手动去调用Read()方法之后 DataReader对象才会移动到结果集的第一行 同时此方法也返回一个Bool值 表明下一行是否可用 返回True则可用 返回False则到达结果集末尾
使用DataReader可以提高执行效率 有两种方式可以提高代码的性能 一种是基于序号的查找 一个是使用适当的Get方法来查找 因为查询出来的结果一般都不会改变 除非再次改动查询语句 因此可以通过定位列的位置来查找记录 用这种方法有一个问题 就是可能知道一列的名称而不知道其所在的位置 这个问题的解决方案是通过调用DataReader 对象的GetOrdinal()方法 此方法接收一个列名并返回此列名所在的列号 例
int id=reader GetOrdinal( CategoryName ) while(reader Read())
Response Write(reader[id]) reader Close()
至于第二种方式很直观 例
while(reader Read())
Response Write(reader GetInt ( ) ToString()+ +reader GetString( ) ToString()+ <br> )
DataReader的GetInt ()和GetString()通过接收一个列号来返回一个列的值 这两种是最常用的 其中 还有很多其它的类型
(注 DataReader对象在调用Close()方法即关闭与数据库的连接 如果在没有关闭之前又重新打开第二个连接 则会产生一条异常信息)
ExecuteNonQuery() 这个方法并不返回一个DataReader对象 而是返回一个int类型的值 即在执行之后在数据库中所影响的行数
例
int affectrows=cmd ExecuteNonQuery() Response Write(affectrows + 条记录受影响 )
ExecuteScalar() 这个方法不接受任何参数 仅仅返回查询结果集中的第一行第一列 而忽略了其它的行和列 而且返回的是一个object类型 在使用之前必须先将它强制转换为所需类型 如果返回的仅仅是一个单独的数据元 则可以使用此方法来提高代码的性能 例
string strCon= server=localhost database=Northwind Trusted_Connection=Yes string strqry= select count(*) from Categories SqlConnection con=new SqlConnection(strCon) con Open() SqlCommand cmd=con CreateCommand() int i=Convert ToInt (cmd ExecuteScalar()) //必须强制转换
ExecuteXmlReader() 此方法用于XML操作 返回一个XmlReader对象 由于系统默认没有引用 System Xml名空间 因此在使用前必须前引入 例
string strCon= server=localhost database=Northwind Trusted_Connection=Yes SqlConnection con=new SqlConnection(strCon) con Open() SqlCommand cmd = new SqlCommand( select * from Categories FOR XML AUTO XMLDATA con) XmlReader xr=cmd ExecuteXmlReader() Response Write(xr AttributeCount) //这里获取当前节点上的属性个数
xr Close()
执行完毕之后 照样要显式地调用Close()方法 否则会抛出异常
使用参数化的查询
先看一段SQL语句 select CategoryID Description from Categories where CategoryID=? 其中的问号就是一个参数 但在使用的时候必须是带有@前缀的命名参数 因为 NET数据提供程序不支持这个通用的参数标记 ? 使用参数化的查询可以大大地简化编程 而且执行效率也比直接查询字符串要高 也更方便 很多情况下都需要更改查询字符串 这种方式就提供了方便 只需更改参数的值即可 例
string strCon= server=localhost database=Northwind Trusted_Connection=Yes SqlConnection con=new SqlConnection(strCon) con Open() string strqry= select * from Categories where CategoryID=@CategoryID //带参数的查询SqlCommand cmd=new SqlCommand(strqry con) cmd Parameters Add( @CategoryID SqlDbType Int ) //给参数赋于同数据库中相同的类型cmd Parameters[ @CategoryID ] Value= //给参数赋值 可灵活改变SqlDataReader r=cmd ExecuteReader() while(r Read())
Response Write(r GetString( )+ <br> ) //取出指定参数列的值 con Close() //切记关闭
cha138/Article/program/net/201311/13317相关参考
通过ADO.NET访问数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一ADONET访问数据
ADO.Net连接数据库示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 连接本地SQLSer
使用ADO.NET设计数据库应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 认识ADO和
ADO.Net与ADO在数据内存中的差异讨论 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据
在ADO和ADO.NET中管理离线数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 您可以使用
ADO.NET中的.NET数据提供者 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ADONET
ADO.NET连接数据库字符串小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinz
Ado.net访问数据库的方法和步骤 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
紧急求助程序连接sqlserver数据库出现问题 服务器配置 windowsxp &n
知识大全 漫谈.Net PetShop和Duwamish ADO.NET数据库编程
漫谈.NetPetShop和DuwamishADO.NET数据库编程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快