Создание Windows-приложений на основе Visual C#

              

Объект Command


Объект Command применяется для выполнения SQL-запросов к источнику данных. Чтобы выполнить запрос, свойству Connection объекта Command следует задать объект "Имя" созданного Connection:

OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = ConnectionString; conn.Open(); OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = conn;

Объект Connection также предоставляет метод CreateCommand, позволяющий упростить данный процесс — этот метод возвращает новый объект Command, уже инициализированный для использования вашего объекта Connection:

OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = ConnectionString; conn.Open(); OleDbCommand myCommand = conn.CreateCommand();

Эти два способа совершенно эквивалентны.

Теперь нам следует определить SQL-запрос, который будет извлекать данные. Как и раньше, строкой, в которой будет содержаться этот запрос будет CommandText. Объявляем переменную CommandText, извлекающую все столбцы таблицы Customer:

Листинг 4.14.

(html, txt)

Объект myСommand имеет свойство, которое так и называется: CommandText. Чтобы избежать путаницы, изменим название переменной — CommandText на commandText (с маленькой буквы):

myCommand.CommandText = commandText;

Создаем объект OleDbDataAdapter:

OleDbDataAdapter dataAdapter = new OleDbDataAdapter();

Объект dataAdapter имеет свойство SelectCommand, в котором мы и будем указывать объект myCommand:

dataAdapter.SelectCommand = myCommand;

Создаем объект DataSet:

DataSet ds = new DataSet();

Заполняем ds данными из dataAdapter:

dataAdapter.Fill(ds, "Customers");

Указываем источник данных DataSource для dataGrid1:

dataGrid1.DataSource = ds.Tables["Customers"].DefaultView;

Закрываем соединение явным образом:

conn.Close();

Все! Запускаем приложение. Мы получили уже знакомый результат, но теперь мы действительно управляем всеми объектами, работающими с данными.

Полный листинг проекта ConnectionMDB:

Листинг 4.15.

(html, txt)

Сравните использование строк ConnectionString и connectinText объектом myCommand с аналогичным использованием объектом DataAdapter (ProgrammDataMDB и ProgrammDataSQL).

Создание объекта Connection для базы данных SQL принципиально не отличается от примера, рассмотренного выше. В следующем фрагменте кода описываются те же объекты Connection и Command:

Листинг 4.16.

(html, txt)

На диске, прилагаемом к книге, вы найдете приложения ConnectionMDB и ConnectionSQL (Code\Glava4\ ConnectionMDB и ConnectionSQL).

У вас наверняка могло сложиться впечатление, что использование визуальных средств Microsoft Visual Studio .NET для добавления и конфигурирования объектов ADO.NET несравненно проще и логичней по сравнению с программным способом создания этих объектов. Однако это впечатление глубоко ошибочно. В действительности, только последний пример может претендовать на завершенное приложение — все остальные являются своего рода вспомогательными модулями. Повторюсь, что только полностью вручную написанный код объектов ADO.NET позволяет создавать ясные, надежные и гибкие приложения.




Содержание  Назад  Вперед