2009-10-04 35 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