用SqlDataReader和SqlDataAdapter读取数据有啥区别?
发布网友
发布时间:2022-04-07 20:03
我来回答
共4个回答
热心网友
时间:2022-04-07 21:33
这个是这样的,SqlDataReader只能用于读,在读的过程中数据库一直保持打开状态,不过读的效率还是可以的
SqlDataAdapter(数据适配器)、DataSet
先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,功能很强大,要好好学习。
像绑定某些数据源之类的话强烈建议用SqlDataAdapter(数据适配器)、DataSet
方法,这样不仅绑定简单而且可以做更新和删除操作(当然用read读出来后在建立连接去删除也是可以的)找本书看看那吧,c#的书现在很多了,我手上都超过三本了
热心网友
时间:2022-04-07 22:51
若要创建 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 中的数据)来提供这一桥接。
当 SqlDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 SqlDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。有关更多信息,请参见向 DataSet 添加现有约束。
SqlDataAdapter 与 SqlConnection 和 SqlCommand 一起使用,以便在连接到 SQL Server 数据库时提高性能。
SqlDataAdapter 还包括 SelectCommand、InsertCommand、DeleteCommand、UpdateCommand 和 TableMappings 属性,以便于数据的加载和更新。
当创建 SqlDataAdapter 的实例时,读/写属性将被设置为初始值。
参考资料:MSDN
热心网友
时间:2022-04-08 00:25
reader 具有直连(断开连接之后就查不出来数据了)、只读(无法修改)、仅向前(只能向前读.Read()不能退回来)
相对于reader adapter就灵活多了 断开连接之后还能用 可修改 等等
增删改的时候建议用reader
查询时建议用adapter
热心网友
时间:2022-04-08 02:17
SqlDataAdapter 桥接器 使用 Fill 方法填充 DataSet 对象并从数据库断开连接
SqlDataReader 只读数据读取器,保持与数据库的持续连接,只读取数据而不能更改,无需创建 DataSet 对象
用SqlDataReader和SqlDataAdapter读取数据有啥区别?
这个是这样的,SqlDataReader只能用于读,在读的过程中数据库一直保持打开状态,不过读的效率还是可以的 SqlDataAdapter(数据适配器)、DataSet 先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,功能很强大,要好好学习。像绑定某些数据源之类的话强烈建...
c# 中 sqldatareader 和 sqldataadapter 、dateset的比较
三个用途根本不一样,没有比较的动力。。。SqlDataReader是个数据读取器,向前不可后退、每次只读取一条。速度快,现代项目里面用它用得最多。DataSet是个内存数据库,它与其它两个是根本不一样的。SqlDataAdapter是个数据适配器,工作于DataSet和数据库之间,负责将数据从数据源读出来放在DataSet中,或将...
...数据,那么我用SqlDataAdapter还是用SqlDataReader效率比较高呢!_百 ...
这个跟查出多少数据是没有关系的。DataAdapter一般配合离线式数据结构使用,如DataSet,DataTable.而DataReader则是要求保持数据连接为打开的状态。如果你不需要对数据做复杂处理,例如仅仅只需要从数据源取出数据进行显示,完全可以使用DataReader(效率比后面提到的方式高些),反之如果你需要进行一些耗时的处理就...
sqldataadapter 和sqldatareader load 和fill谁更快一点
SqlCommand与ADO时代的Command一样,SqlDataAdapter则是ADO.NET中的新事物,它配合DataSet来使用。其实,DataSet就像是驻留在内存中的小数据库,在DataSet中可以有多张DataTable,这些DataTable之间可以相互关联,就像在数据库中表关联一样!SqlDataAdapter的作用就是将数据从数据库中提取出来,放在DataSet中,当Da...
sqlconnection,sqlcommand,sqldataadapter,sqldatareader,dataset_百度...
3 上帝认为要有办法读取返回结果,于是便有了datareader.可以一条一条的读取(read)直到最后一条。4 上帝认为,把执行的结果找个地方存起来是好的。于是就有了dataset。这个东西很完美,基本上能存各种数据跟关系,比datareader方便很多。里面有一个一个的dataview跟datatable.针对你的查询结果,当然,...
如何从SqlDataReader中获取DataRow
1、前言 使用SqlDataReader较之SqlDataAdapter速度上快,因为读取记录是一行一行的来,但是往往也感觉那么蹩脚。例如经常用到的如何从SqlDataReader中获取DataRow呢?下面给出以下几种方法。2、DataSet.Load方法 首先使用DataSet.Load(pSqlDataReader, LoadOption.Upsert, "")将数据载入。再使用pDataSet....
C#中,DataReader读取数据是否要保持SqlConnection打开状态?
你说的非常对。只有一种情况不用打开 sqlconnection 那就是使用SqlDataAdapter类的时候不用打开,因为这个对象是自动打开并且自动关闭的。
...DataRow、SqlDataReader。 分别用于什么作用,举例说明。
返回DataTable 是返回一张数据表 DataSet是数据集 DataRow 是一行数据 SqlDataReader是读取数据行的方法
c# winform 多句sql查询
两个语句其实都执行了。这样的情况下建议使用SqlDataReader手动读取数据,使用它的NextResult()方法能读取到第二个数据集。
关于sqldatareader
???一次只能从sqlDataReader中读取一条数据 需要分页吗 要分页的话 建议使用dataset 给你个代码 不需要加任何控件 string cmdText="select * from Community_NamedPages"; DataSet ds =new DataSet(); string conString="data source=**;initial catalog=CommunityStarterKit;password=**;persist...