Следующей задачей будет исследование основных интерфейсов System.Data
Роль интерфейса 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();
void Dispose();
}
Роль интерфейса IDbTransaction
Перегруженный метод BeginTransaction()
IDbConnection, предоставляет доступ к IDbTransaction, позволяют программно взаимодействовать с транзакционным сеансом и лежащим в основе хранилищем данных:public interface IDbTransaction : IDisposable
{
IDbConnection Connection { get; }
IsolationLevel IsolationLevel { get; }
void Commit();
void Rollback();
void Dispose();
}
Роль интерфейса IDbCommand
Интерфейс IDbCommand
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; }