Выбери любимый жанр

Язык программирования C#9 и платформа .NET5 - Джепикс Филипп - Страница 380


Изменить размер шрифта:

380

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();

  void Dispose();

}

Роль интерфейса IDbTransaction

Перегруженный метод

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

public interface IDbTransaction : IDisposable

{

  IDbConnection Connection { get; }

  IsolationLevel IsolationLevel { get; }

  void Commit();

  void Rollback();

  void Dispose();

}

Роль интерфейса IDbCommand

Интерфейс

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

public interface IDbCommand : IDisposable

{

  string CommandText { get; set; }

  int CommandTimeout { get; set; }

  CommandType CommandType { get; set; }

  IDbConnection Connection { get; set; }

  IDbTransaction Transaction { get; set; }

  IDataParameterCollection Parameters { get; }

  UpdateRowSource UpdatedRowSource { get; set; }

  void Prepare();

  void Cancel();

  IDbDataParameter CreateParameter();

  int ExecuteNonQuery();

  IDataReader ExecuteReader();

  IDataReader ExecuteReader(CommandBehavior behavior);

  object ExecuteScalar();

  void Dispose();

}

Роль интерфейсов IDbDataParameter и IDataParameter

Обратите внимание, что свойство

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

public interface IDbDataParameter : IDataParameter

{

// Плюс члены интерфейса 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; }

}

Вы увидите, что функциональность интерфейсов I

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

Роль интерфейсов IDbDataAdapter и IDataAdapter

Адаптеры данных используются для помещения объектов

DataSet
в хранилище данных и извлечения их из него. Интерфейс
IDbDataAdapter
определяет следующий набор свойств, которые можно применять для поддержки операторов SQL, выполняющих связанные операции выборки, вставки, обновления и удаления:

public interface IDbDataAdapter : IDataAdapter

{

  // Плюс члены интерфейса IDataAdapter.

  IDbCommand SelectCommand { get; set; }

  IDbCommand InsertCommand { get; set; }

  IDbCommand UpdateCommand { get; set; }

  IDbCommand DeleteCommand { get; set; }

}

В дополнение к показанным четырем свойствам адаптер данных ADO.NET также получает линии поведения, определенные базовым интерфейсом, т.е.

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

380
Перейти на страницу:
Мир литературы

Жанры

Фантастика и фэнтези

Детективы и триллеры

Проза

Любовные романы

Приключения

Детские

Поэзия и драматургия

Старинная литература

Научно-образовательная

Компьютеры и интернет

Справочная литература

Документальная литература

Религия и духовность

Юмор

Дом и семья

Деловая литература

Жанр не определен

Техника

Прочее

Драматургия

Фольклор

Военное дело