1

如果我使用 SQL Server >= 2005,使用 SQLDataReader 与仅实现 IDatareader 的阅读器相比有什么优势?

SQLDatareader 是否只是有更多功能可供选择,还是使用 SQLDatareader 可以提高性能?

任何讨论此问题的文章将不胜感激。

谢谢!

克里斯

4

2 回答 2

3

首先让我纠正您的误解:如果您使用的是 SQL Server,则不是每个 IDataReader 都能够从您的 MS SQL Server 读取数据

在 .NET 环境中(我假设您的问题适用),有两个具体的类实现了可以访问 SQL Server 的 IDataReader。一个是 SQLDataReader,另一个是 OleDbDataReader。OleDbDataReader 实际上依赖于OleDb 协议,它基本上是一个 RDBMS 通信协议。

在您的代码中使用 IDataReader 将(或多或少)确保您可以替换它背后的具体数据读取器(例如,让您能够切换数据库供应商。并不是说我认识任何成功做到这一点的人)。

对于访问 SQL Server,专用的 SQLDataReader速度提高了 115% ,因为它使用本机 sql 服务器协议(命名为管道/tcp/ip)它还支持特殊的 SQL Server 功能,例如 MARS。

于 2009-10-15T20:59:50.090 回答
0

.HasRows 属性是我能想到的唯一一个。但这并不是真的必要。

于 2009-10-15T20:59:17.973 回答