Dan*_*iel 54 c# asp.net ado.net
我刚看到这个主题:Datatable vs Dataset 但它并没有解决我的疑问..让我解释一下,我正在与数据库建立联系,需要在GridView中显示结果.(我在使用VB6时使用了RecordSet,而DataSet与它非常相似,因此使用DataSet要容易得多.)然后一个人告诉我DataSet不是最好的方法.
那么,我应该'学习'DataReader还是继续使用DataSet?DataTable?有哪些优点/缺点?
Mar*_*ell 202
这基本上是:"哪个更好:水桶还是软管?"
这DataSet
是一个桶; 它允许您携带一组断开连接的数据并使用它 - 但是您将承担携带桶的成本(因此最好将其保持在您熟悉的尺寸).
数据阅读器是软管:它提供单向/一次访问数据,因为它飞过你; 您不必一次携带所有可用的水,但需要将其连接到水龙头/数据库.
就像你可以用软管填充水桶一样,你可以DataSet
用数据阅读器填充.
我想说的是,他们做了不同的事情......
我个人并不DataSet
经常使用- 但有些人喜欢它们.但是,我确实使用数据读取器进行BLOB访问等.
Ahm*_*eed 74
这取决于您的需求.其中一个最重要的区别是DataReader将保留与数据库的开放连接,直到您完成它,而DataSet将是一个内存中对象.如果将控件绑定到DataReader,则它仍处于打开状态.此外,DataReader是一种仅向前读取无法操作的数据的方法.使用DataSet,您可以根据需要来回移动和操作数据.
一些附加功能:DataSet可以序列化并以XML格式表示,因此可以轻松传递到其他层.DataReader无法序列化.
另一方面,如果您要从数据库中读取大量行,并将其移交给业务规则的某个进程,则DataReader可能更有意义,而不是使用所有行加载DataSet,占用内存并可能影响可扩展性.
这是一个有点过时但仍然有用的链接:对比ADO.NET DataReader和DataSet.
不同的需求,不同的解决方案。
如您所说,数据集与VB6记录集最相似。就是说,下拉所需的数据,将其传递,然后随心所欲地进行处理。哦,然后当您完成操作时最终将其删除。
Datareader的局限性更大,但是当您只需要读取一次数据时,它会提供更好的性能。例如,如果您自己填充网格(即提取数据,遍历整个网格,对于每一行填充网格,然后丢弃数据),则datareader优于数据集。另一方面,如果您打算更新数据,甚至不要尝试使用datareader ...
因此,是的,请学习它-但仅在适当的时候使用它。数据集为您提供了更大的灵活性。
归档时间: |
|
查看次数: |
61301 次 |
最近记录: |