博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# .net使用SqlDataReader注意的几点----转
阅读量:4692 次
发布时间:2019-06-09

本文共 1018 字,大约阅读时间需要 3 分钟。

1、当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它。

2、一个连接只能被一个SqlDataReader使用,这也是为什么要尽早关闭SqlDataReader的原因。
3、使用完SqlDataReader后,你可以在程序中显示的调用
对象的Close方法关闭连接,也可以在调用Command对象的ExecuteReader方法时传递CommandBehavior.CloseConnection 这个枚举变量,这样在调用SqlDataReader的Close方法时会自动关闭数据库连接。
4、使用SqlDataReader时尽量使用和数据库字段类型匹配的方法来取得相应的值,比如对于整形的字段使用GetInt32,对字符类型的字段使用GetString。这样会减少因为类型不一致而额外增加的类型转换操作。
5、 使用SqlDataReader获取多条记录时,如果没有访问到取出记录的末尾时想要关闭SqlDataReader,应该先调用Command对象的 Cancel方法,然后再调用SqlDataReader的Close方法。Command对象的Cancel方法使得不再把SqlDataReader中未访问的数据发送到调用端,如果不调用此方法直接关闭SqlDataReader,数据库会发送和SqlDataReader未访问数据等长的空数据流到调用端。
6、如果想通过SqlCommand的ExecuteReader方法获取存储过程的返回值或者输出参数,必须先调用SqlDataReader的Close方法后,才能获取输出参数的值或者返回值。
7、如果使用SqlDataReader只返回一条记录,那么在调用Command的ExecuteReader方法时,指定
CommandBehavior.SingleRow参数,这个参数的是否使用对SQL Server .NET Data Provider没有什么影响,但是当你使用OLE DB .NET Data Provider时,指定这个参数后,DataPrivider内部将使用IRow接口,而不是使用相对来说耗费资源的IRowSet接口。

转载于:https://www.cnblogs.com/lovesy2413/p/4478353.html

你可能感兴趣的文章
c++友元
查看>>
c++运算符重载
查看>>
一元运算符重载
查看>>
c中的malloc函数
查看>>
c++继承中的对象模型
查看>>
c++中的new和delete
查看>>
c++继承中同名成员处理
查看>>
值传递,引用传递,指针传递
查看>>
浅拷贝和深拷贝
查看>>
结构体嵌套一个例子
查看>>
虚析构和纯虚析构
查看>>
空对象占用的内存空间
查看>>
构造函数调用规则
查看>>
基类成员访问方式
查看>>
编译安装MySQL
查看>>
expect脚本远程登录、远程执行命令和脚本传参简单用法
查看>>
隐藏Apache版本号及版本敏感信息
查看>>
pssh安装及使用
查看>>
LAMP环境搭建之编译安装指南(php-5.3.27.tar.gz)
查看>>
linux后台运行、关闭、查看后台任务常用命令
查看>>