用SqlDataReader和SqlDataAdapter读取数据有啥区别?

来源:百度知道 编辑:UC知道 时间:2024/07/02 13:01:31
我想建一个SQLHelper类的一个方法以查询数据库的数据
书上写的有用SqlDataReader(数据读取器)和SqlDataAdapter(数据适配器)、DataSet(数据集)这两种方法
貌似两者的效果都一样,所以想请教一下各位,应该怎么写比较合适
如果可以的话也可以把你们的代码发给我参考参考~谢谢了

这个是这样的,SqlDataReader只能用于读,在读的过程中数据库一直保持打开状态,不过读的效率还是可以的

SqlDataAdapter(数据适配器)、DataSet
先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,功能很强大,要好好学习。
像绑定某些数据源之类的话强烈建议用SqlDataAdapter(数据适配器)、DataSet
方法,这样不仅绑定简单而且可以做更新和删除操作(当然用read读出来后在建立连接去删除也是可以的)找本书看看那吧,c#的书现在很多了,我手上都超过三本了

若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不要直接使用构造函数。

在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为 SqlDataReader 服务,对 SqlConnection 无法执行任何其他操作,只能将其关闭。除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。例如,在调用 Close 之前,无法检索输出参数。

SqlDataReader 的用户可能会看到在读取数据时另一进程或线程对结果集所做的更改。但是,确切的行为与执行时间有关。

当 SqlDataReader 关闭后,只能调用 IsClosed 和 RecordsAffected 属性。尽管当 SqlDataReader 存在时可以访问 RecordsAffected 属性,但是请始终在返回 RecordsAffected 的值之前调用 Close,以保证返回精确的值。

SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。SqlDataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接。

当 SqlD