Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Троелсен Э. Язык программирования С# 2010 и п...docx
Скачиваний:
113
Добавлен:
21.09.2019
Размер:
6.92 Mб
Скачать

Интерфейс iDbConnection

Тип IDbConnection реализуется объектом соединения поставщика данных, Этот интерфейс определяет множество членов, используемых для настройки соединения с конкретным хранилищем данных, а также позволяет получить объект транзакции поставщика данных. Вот формальное определение IDbConnection.

public interface IDbConnection: IDisposable {

 string ConnectionString { get; set; }

 int ConnectionTimeout { get; }

 string Database { get; }

 ConnectionState State { get; }

 IDbTransaction BeginTransaction();

 IDbTransaction BeginTransaction(IsolationLevel il);

 void ChangeDatabase(string databaseName);

 void Close();

 IDbCommand CreateCommand();

 void Open();

}

Интерфейс iDbTransaction

Как видите, перегруженный метод BeginTransaction(), определенный интерфейсом IDbConnection, обеспечивает доступ к объекту транзакции поставщика данных. Используя члены, определенные интерфейсам IDbTransaction, вы можете осуществлять программное взаимодействие с сеансом транзакции и соответствующим хранилищем данных.

public Interface IDbTransaction: IDisposable {

 IDbConnection Connection { get; }

 IsolationLevel IsolationLevel { get; }

 void Commit();

 void Rollback();

}

Интерфейс iDbCommand

Интерфейс IDbCommand будет реализован объектом команды поставщика данных. Как и в других объектных моделях доступа к данным, здесь объекты команд позволяют программно обрабатывать SQL-операторы, хранимые процедуры и параметризованные запросы. Кроме того, с помощью перегруженного метода ExecuteReader() объекты команд обеспечивают доступ к объекту чтения данных поставщика данных,

public Interface IDbCommand: IDisposable {

 string CommandText { get; set; }

 int CommandTimeout { get; set; }

 CommandType CommandType { get; set; }

 IDbConnection Connection { get; set; }

 IDataParameterCollection Parameters { get; }

 IDbTransaction Transaction { get; set; }

 UpdateRowSource UpdateRowSource { get; set; }

 void Cancel();

 IDbDataParameter CreateParameter();

 int ExecuteNonQuery();

 IDataReader ExecuteReader();

 IDataReader ExecuteReader(CommandBehavior behavior);

 object ExecuteScalar();

 void Prepare();

}

Интерфейсы iDbDataParameter и iDataParameter

Обратите внимание на то, что свойство Parameters интерфейса IDbCommand возвращает строго типизованную коллекцию, реализующую интерфейс IDataParameterCollection. Этот интерфейс обеспечивает доступ к множеству совместимых с IDbDataParameter типов класса (например, объектов параметров).

public interface IDbDataParameter: IDataParameter {

 byte Precision { get; set; }

 byte Scale { get; set; }

 int Size { get; set; }

}

Интерфейс IDbDataParameter расширяет интерфейс IDataParameter. предлагающий следующие возможности.

public interface IDataParameter {

 DbType DbType { get; set; }

 ParameterDirection Direction { get; set; }

 bool IsNullable { get; }

 string ParameterName { get; set; }

 string SourceColumn { get; set; }

 DataRowVersion SourceVersion { get; set; }

 object Value { get; set; }

}

Как видите, интерфейсы IDbDataParameter и IDataParameter позволяют представить параметры SQL-команды (включая хранимые процедуры) в виде специальных объектов параметров ADO.NET, а не в виде сложных строковых литералов.