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

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

Объект 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 позволяет создавать ясные, надежные и гибкие приложения.




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


508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.