如果我使用SQL Server> = 2005,那么使用SQLDataReader有什么优势,而不是只实现IDatareader的阅读器?
SQLDatareader是否只有更多可供选择的功能,或者使用SQLDatareader是否有性能改进?
任何讨论此事的文章都将受到赞赏。
谢谢!
克里斯
答案 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属性是我能想到的唯一属性。 但这并不是必要的。