作者deuter (Harold)
看板C_Sharp
标题Re: [心得]ADO.Net 2.0的IDataReader要重用
时间Sun Mar 18 07:27:24 2007
新增加的DataTable的功能应该算是原来 DataSet 的加强
把原来只有 DataSet 才有的功能, 现在 DataTable 也可以直接用了
简化了程式设计者的麻烦, 并改善了效能
但新的 DataTable 并不是要完全取代 DataReader
ADO.NET 仍然还是分成两种读取资料的类别
Connected DataReader 和 Disconnected DataSet (DataTable)
各有各的优缺点, 网路上也有很多文章介绍两种的不同
http://msdn2.microsoft.com/en-us/library/ms971481.aspx#adonetbest_topic3
http://msdn.microsoft.com/msdnmag/issues/04/06/DataPoints/
※ 引述《tomex (Tomex Ou)》之铭言:
: 在 ADO.Net 1.0时代,DataReader是读取db最有效率的物件
: 但使用上不允许multi-active recordset,意思没有close前连线是被占住的。
: 而且又要loop去读值,没啥变化,因此很少用它。
: 在ADO.Net 2.0时,它为了解决很有前版效能上的问题
: 又大大地重用IDataReader的类别
: 例如支援multi-actve recordset,又重要是可以让DataTable直接吃
: 因此你可以迅速得到schema及资料
: 而不用借用肥肥的data adapter来fill()填充。
: DataTable dt = new DataTable();
: dt.Load(dataReader); // 得到schema及data
: DataTable又支援导出其IDataReader,如
: dt.CreateDataReader()导出,就会可另一个data table物件快速填充复制。
: 在以往,要复制datatable,只能先dt.Clone(); 取得schema
: 再用Add(DataRow[])方式,效能就变差了。
: 结论,
: 可能很易挥发的快速IDataReader,因为DataTable能够cache它
: 因此我开始又大量使用它。
: Author: Tomex Ou
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 67.161.17.127
1F:推 tomex:最主要仍在於是否有"离线保存"的效果及操作简易性而己。 03/18 12:41