Преимущества использования SqlDataReader по сравнению с программой чтения, которая реализует IDataReader?

StackOverflow https://stackoverflow.com/questions/1574975

  •  21-09-2019
  •  | 
  •  

Вопрос

Каковы преимущества использования SqlDataReader в отличие от reader, который просто реализует IDataReader, если я использую SQL Server >= 2005?

Обладает ли SqlDataReader просто большей функциональностью на выбор или с помощью SqlDataReader можно повысить производительность?

Будем признательны за любые статьи, в которых обсуждается этот вопрос.

Спасибо!

Крис

Это было полезно?

Решение

Прежде всего позвольте мне исправить ваше недоразумение:Если вы используете SQL Server, НЕ каждый IDataReader сможет считывать данные с вашего MS SQL Server

В .СЕТЕВАЯ среда (к которой, я полагаю, относится ваш вопрос) существует два конкретных класса, реализующих IDataReader, которые могут обращаться к SQL Server.Один из них - SqlDataReader, а другой - OleDbDataReader.OleDbDataReader фактически полагается на Протокол OleDb, который в основном является протоколом связи RDBMS.

Использование IDataReader в вашем коде (более или менее) гарантирует, что вы сможете заменить конкретный datareader за ним (напримерпредоставляя вам возможность переключать поставщиков баз данных.Не то чтобы я знал кого-нибудь, кто успешно сделал это).

Для доступа к SQL Server используется специализированный SqlDataReader является быстрее на 115% в соответствии с этим Источник, поскольку он использует собственные протоколы sql server (именованные каналы / tcp/ ip).Он также поддерживает специальные функции SQL Server, такие как MARS.

Другие советы

.Свойство HasRows - единственное, о котором я могу думать.Хотя на самом деле в этом нет необходимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top