Re: [心得]ADO.Net 2.0的IDataReader要重用

看板C_Sharp (C#)作者 (Harold)時間18年前 (2007/03/18 07:27), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
新增加的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

03/18 12:41, , 1F
最主要仍在於是否有"離線保存"的效果及操作簡易性而己。
03/18 12:41, 1F
文章代碼(AID): #15_7bT6C (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #15_7bT6C (C_Sharp)