C#中,DataReader读取数据是否要保持SqlConnection打开状态?

我的意思是说:在connection关闭后就不能用DataReader了?
2025-05-16 05:45:53
推荐回答(5个)
回答(1):

你说的非常对。
只有一种情况不用打开 sqlconnection
那就是使用SqlDataAdapter类的时候不用打开,因为这个对象是自动打开并且自动关闭的。

回答(2):

SqlDataReader 是一个在线的阅读器,每次只能读取一条,并且在读取过程中连接一直要保持打开。

如果需要离线处理数据(关闭数据库连接),那么可以考虑使用 DataSet 或 DataTable 来保存数据。

回答(3):

他的确是从dataset读取...
无连接状态

回答(4):

你理解的非常对 你对对巨库进行操作 无论是增删改查哪一种都要保持与数据库的链接 open方法一定要有

回答(5):

DataReader 对象在操作的时候Connection 对象是保持联机的状态
下表为DataReader 常用的方法:

方法 说明

Close 将DataReader 对象关闭

GetDataTypeName 取得指定字段的数据型态

GetName 取得指定字段的字段名称

GetOrdinal 取得指定字段名称在纪录中的顺序

GetValue 取得指定字段的数据

GetValues 取得全部字段的数据

IsNull 用来判断字段内是否为Null 值

NextResult 用来和SQL Script 搭配使用,表示取得下一个结果

Read 让DataReader 读取下一笔记录,如果有读到数据则传回True,若没有纪录则传回False

Read 方法

在取得Command 对象执行Execute 方法所产生的DataReader 对象后,我们就可以将纪录中

的数据取出使用。DataReader 一开始并没有取回任何数据,所以我们要先使用Read 方法让

DataReader 先读取一笔数据回来。如果DataReader 对象成功取得数据则传回True,若没有取

得资料则传回False。这样一来我们就可以利用Do While...Loop 循环来取得所有的数据,