什么更好: DataSet 或者 DataReader?

我刚看到这个话题:
https://coderoad.ru/2250/
, 但它没有解决我的疑虑 .. 让我解释得更好,我与数据库进行了联系,不得不显示结果 GridView. /我用了 RecordSet, 当我工作时 VB6 前一段时间 DataSet 与他很相似,所以更容易使用 DataSet./
然后一个人告诉我,数据集不是最好的方法 ..

所以,我应该 'learn' DataReader 或继续使用 DataSet ? DataTable ?
什么是份额/缩影 ?
已邀请:

帅驴

赞同来自:

这基本上是: "which is better: a bucket or a hose?"

A
DataSet

- 这桶在这里; 它允许您携带破解的数据集并与之合作,但您将承担携带桶的成本 /因此,最好将其保持在方便的尺寸。/.

数据阅读器是一种软管:它提供 one-way/once-only 当他们飞过你时,可以访问数据; 您不需要立即携带所有可用的水,但必须连接到 tap/database.

就像你可以填充桶软管一样,你可以填充
DataSet

数据阅读器。

我想说他们做了不同的东西......

就个人而言,我使用
DataSet

不经常 , 但有些人爱他们。 但是,我使用数据读取器 BLOB 访问等

知食

赞同来自:

这取决于您的需求。 最重要的差异之一是 a DataReader 将使用数据库保存打开连接,直到您使用它完成 A DataSet 它将是内存中的一个对象。 如果你把控件绑定到 DataReader, 它仍然是开放的。 除了, a DataReader - 这是一种直接读取无法操纵的数据的方法。 通过 DataSet 您可以向前和向后移动并根据您的方式操纵数据。

一些其他功能: DataSets 可以序列化并呈现 XML 因此,容易转移到其他层面。 DataReaders 无法序列化。

另一方面,如果您有大量的行数据库,则从数据库中读取您为业务规则传达某些过程, a DataReader 可能比装载更有意义 a DataSet 与所有线条,占用内存,可能影响可扩展性。

这是一个有点过时的链接,但仍然有用:
http://msdn.microsoft.com/en-u ... .aspx
.

三叔

赞同来自:

旁边

: 您可以使用 DataSet 一般没有数据库。

您可以从文件中填充它。 XML 或者只是从程序。 从一个数据库中填充行,然后展开并记录到另一个数据库。

A 数据集是完全存储在关系方案的关系中。 你会用真正的关系数据库使用它是否取决于您。

风见雨下

赞同来自:

不同的需求,不同的解决方案。

正如你所说的那样 dataset 最像 VB6 Recordset. 也就是说,删除所需的数据,将它们传递给圆圈,请与它们一起使用。 哦,然后,最后,在你完成时摆脱它。

Datareader 更有限,但它给了 MUCH 当您需要的一切时,最佳性能是读取一次数据。 例如,如果您自己填写了网格T. 即提取数据,尝试它们,对于每一行,填充网格,然后删除数据 - datareader 好多了 dataset. 另一方面,甚至不尝试使用 datareader, 如果您有意更新数据...

所以是的,学习它,但仅在适当时使用。 数据集使您更具灵活性。

八刀丁二

赞同来自:

要回答你的第二个问题,是的,你应该了解 DataReaders. 在任何情况下,你都会了解如何使用它们。

我想在这种情况下你最好使用 DataSets - 那你怎么办 data binding 和所有 /我觉得 CPU 对人类努力的循环/.

关于哪一个会提供更好的表现。 这对你的情况非常依赖。 例如,如果编辑绑定的数据和更改包,那么您将更好 DataSets

奔跑吧少年

赞同来自:

DataReader 反对集合

数据

1/ - DataReader 以面向连接的架构设计

- DataSet 设计成断开连接的架构

2/ - DataReader 仅提供直接访问数据

- DataSet 为数据提供滚动导航

3/ - DataReader 只读只可用,我们无法更改它下面的数据。

- DataSet 已更新我们可以更改它下面的数据,并将这些更改发送回数据源

4/ - DataReader 不提供此类选项作为搜索和数据排序

- DataSet 提供此类选项作为搜索和数据排序

要回复问题请先登录注册