2009-10-04 38 views
1

什麼時候應該使用DataSet而不是DataReader?DataSet,舊的混淆

當我必須使用DataSet而不是DataReader?

什麼時候應該以斷開的方式使用數據?

當我必須以斷開的方式使用數據?

N.B. 我不是問哪個更好。我需要知道使用DataSet的適當場景。我在.net編程了幾年,但我從不認真需要它。

+0

http://stackoverflow.com/questions/1083193/whats-better-dataset-or-datareader和更多的重複。 – 2009-10-04 23:17:45

+0

@John Saunders,你看過我的問題嗎? – anonymous 2009-10-05 17:25:11

回答

2

一種情況下,當您想要將數據從一層傳遞到應用程序的另一層時,可以使用數據集。欲瞭解更多信息Dataset and DataReader

+1

這可以通過列表完成。 – anonymous 2009-10-04 23:10:20

+1

我同意你是否將「應該」改爲「可以」。 @JMSA指出了一個有效的選擇。 – jrcs3 2009-10-04 23:13:03

+1

是的,那是真的那麼在這種情況下使用DataReader來填充你的列表 – Nirlep 2009-10-04 23:13:33

0

DataSet在內存中保存所有需要的數據記錄,而DataReader一次從數據連接中讀取一條記錄中的記錄。

DataSet通常使用DataReaders填充數據。

當您需要高性能,只讀閱讀器時使用DataReader。

當您需要做一些需要所有數據同時存在的事情時(如序列化或在層之間傳遞數據),請使用DataSet。但是,正如其他人指出的那樣,使用List<T>而不是DataSet對象可以更好地區分層之間的關注點。

有關更多信息,請參閱http://articles.sitepoint.com/article/dataset-datareaderhttp://msdn.microsoft.com/en-us/magazine/cc188717.aspx

+0

應該指出,DataSets可以加載DataReaders(我不知道用例證明它可以完成)。 – jrcs3 2009-10-04 23:10:11

+0

這也可以通過列表完成。 – anonymous 2009-10-04 23:10:53

+0

我想你已經倒退了。數據讀取器僅向前轉發,並且性能比DataSets更高,後者更側重於一次保存所有數據。 我還喜歡在層之間發送列表。它使域更加乾淨地隔離。 – 2010-04-26 17:20:36