使用SQLDataReader有哪些优点/缺点?

时间:2008-10-10 18:40:47

标签: .net-2.0

SqlDataReader是处理存储过程的更快捷方式。使用SQLDataReader有哪些优点/缺点?

5 个答案:

答案 0 :(得分:7)

我认为你的意思是“而不是将结果加载到DataTable中”?

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

缺点:您可以控制数据的加载方式,这意味着更容易出错并且还有更多工作要做。

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

优点:更快,更少的记忆。

缺点:必须保持连接,必须记得关闭阅读器。

答案 4 :(得分:-1)

这些数据可能并不完整,而且您无法控制自己的行为,为什么牛奶男子一直随身携带数据,否则他们会被数据破解,警察将不会携带任何数据数据,因为他们认为保留其他人的数据是错误的,这是错误的。有一个女孩住在谢菲尔德,她喜欢出去玩她在家里的大部分时间,这就是为什么我不喜欢和她说话,因为她的父母和她的其他朋友都被带到和平花园这个地方每个人都喜欢唱歌和留下来。通常着名的名人明白了,但总有最高安全性,因为我们不想让他们陷入困境。 KK现在看到你,我需要两个人去西边的PEACE !!!“$$$由MOney MAN制造**