C#中DataSet-DataTable-DataReader-DataAdapter的比较

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

.net进行数据库操作的时候,难免遇到DataSet,DataReader和DataTable,下面让我们来认识一下:DataSet:表示一个数据集,是数据在内存中的缓存,可以包括多个表。DataSet.Table(“表名”).Rows(行号)(“字段名”)DataTable:表示内存中数据的一个表。DataTable.Rows(行号)(“字段名”)DataReader:DataReader对象是用来读取数据库的最简单方式,只能读取,不能写入,并且是从头至尾往下读的,无法只读某条数据;但他占用内存小,速度快。DataAdapter:DataAdapter对象是用来读取数据库,可读取写入数据;但他占用内存比DataReader大,速度慢。DatSet连接数据库是非面向连接的,他把表读到缓存中,并断开与数据库的连接。DataReader连接数据库是面向连接的。读表时,只能向前读取,读完数据后,由用户决定是否断开连接。DataSet保存了数据的数据结构,DataReader不承担保存数据的责任,他只负责从数据源读取数据到本地,不是数据结构,而是网络通讯组件的高层封装。DataAdapter,使用DataReader从数据源读取数据并Add到DataSet保存起来。实际上我们从数据库获得数据都会通过DataReader,只不过DataAdapter把这一切都封装起来了。DataSet不能直接用来存储数据,如果仅用DataSet,它会自动的生成一个DataTable,所以看上去就像一个DataTable。如果有很多个DataTable需要同时绑定到某个控件,就可以把多个DataTable添加到一个DataSet中,分别起不同的名字就可以了。DataReader&DataTableDataReaderToDataTable:DimdrAsSqlDataReader=cmd.ExecuteReader(CommandBehavior.CloseConnection)DimdtAsDataTable=NewDataTable()dt.Load(dr)DataTableToDataReader:DimdtAdDataTable=……DimdrAsDataTableReader=dt.CreateDataReader()注意:1.使用Load方法时,如果DataTable中已经存有数据,新旧数据将合并。(新数据是指从DataReader中读取的)2.DataTableReader实现了IDataReader,尽量使用接口。3.DataSet也有类似Load和CreateDataReader方法。DataSet&DataTableDataSet:数据集。一般包含多个DataTable,用的时候,dataset[表名]得到DataTableDataTable:数据表。直接把数据结果放到datatable中SqlDataAdapterda=newSqlDataAdapter(cmd);DataTabledt=newDataTable();da.Fill(dt);数据结果放到dataset中,若要用那个datatable,可以这样:dataset[0]SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=newDataSet();da.Fill(ds);用的时候:这样取datatable:dataset[table1]SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetdt=newDataSet();da.Fill(dt,table1);

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功