Преимущества использования SqlDataReader по сравнению с программой чтения, которая реализует IDataReader?
-
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 - единственное, о котором я могу думать.Хотя на самом деле в этом нет необходимости.