2008-10-10 93 views

回答

7

我假设你的意思是“而不是将结果加载到DataTable”?

优点:您可以控制数据的加载方式。您可以询问特定的数据类型,除非您想要,否则您最终不会将所有数据集全部加载到内存中。基本上,如果你想要数据但不需要数据表(例如,你将填充你自己的收集类型),你不会得到中间步骤的开销。

缺点:您在控制数据的加载方式,这意味着犯错很容易,而且还有更多工作要做。

这里你的用例是什么?您是否有充分理由相信使用正常(或强类型)数据表的开销会严重影响性能?如果我有充足的理由,我只会直接使用SqlDataReader。

+0

我完全同意你的答案,乔恩。感谢你的简单回答。 – 2014-05-26 14:38:45

1

这取决于你需要做什么。如果从数据库中取回一页结果(比如20条记录),最好使用数据适配器填充DataSet,并将其绑定到UI中的某些内容。

但是,如果您需要处理多个记录,一次一个,请使用SqlDataReader。

1

优点:更快,更少的内存。缺点:必须保持连接,一定要记得关闭读卡器。

3

关键优势显然是速度 - 这是您选择SQLDataReader的主要原因。

尚未提及的一个潜在缺点是SQLDataReader仅仅是前向的,所以你只能按顺序遍历记录 - 这是允许它如此之快的事情之一。在许多情况下,这很好,但如果您需要多次迭代记录或添加/编辑/删除数据,则需要使用其中一种替代方法。

它也会保持连接状态,直到您完成所有记录并关闭阅读器(当然,您可以选择先关闭它,但不能访问任何剩余记录)。如果您在对记录进行迭代时对记录执行任何冗长的处理,则可能会发现影响与数据库的其他连接。

-1

数据可能无法得出结论,而且您无法控制自己的行为,因为路上的牛奶人为什么一直需要随身携带数据,否则他们会被数据破解并且警察不会携带任何数据,因为他们认为保留其他人的数据是错误的,而错误的是这样做。有一个女孩生活在谢菲尔德,她喜欢出去玩大多数时间,因为她在屋里,这就是为什么我不喜欢跟她说话,因为她的父母和她的其他作品被带到了和平的花园里,这是一个地方每个人都喜欢唱歌和留下。通常着名的明星都会挂断,但总是有最高的安全感,因为我们不想让他们陷入绝境。 KK见你现在我需要2去冰冷西部PEACE !!!£“$$$由MOney MAN $$$$