在实现IDatareader的阅读器上使用SQLDataReader的优点是什么?

时间:2009-10-15 20:49:43

标签: sqldatareader idatareader

如果我使用SQL Server> = 2005,那么使用SQLDataReader有什么优势,而不是只实现IDatareader的阅读器?

SQLDatareader是否只有更多可供选择的功能,或者使用SQLDatareader是否有性能改进?

任何讨论此事的文章都将受到赞赏。

谢谢!

克里斯

2 个答案:

答案 0 :(得分:3)

首先让我纠正你的误解:如果你正在使用SQL Server,那么每个IDataReader都不能从你的MS SQL Server读取数据

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

在您的代码中使用IDataReader将(或多或少)确保您可以替换它背后的具体数据加载器(例如,让您能够切换数据库供应商。并非我知道有人成功地执行了此操作。)

对于访问SQL Server,根据此source,专用SQLDataReader 的速度提高了115%,因为它使用本机sql server协议(命名为pipes / tcp / ip)。它还支持特殊的SQL Server功能,如MARS。

答案 1 :(得分:0)

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