Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Установка свойства InsertCommand

Установка свойства InsertCommand

При использовании адаптера данных для обновления DataSet первой задачей оказывается назначение свойствам UpdateCommand, DeleteCommand и InsertCommand действительных объектов команд (пока вы этого не сделаете, эти свойства возвращают null). Слово "действительные" для объектов команд здесь используется потому, что набор объектов команд, которые вы "подключаете" к адаптеру данных, изменяется в зависимости от таблицы, данные которой вы пытаетесь обновить. В этом примере соответствующей таблицей является таблица Inventory. И вот как выглядит измененный метод InsertNewCar().

private static void InsertNewCar(SqlDataAdapter dAdapter) {
 // Сбор информации о новой машине.
 …
 // Формирование SQL-оператора Insert и подключение к DataAdapter.
 string sql = string.Format("Insert Into Inventory" +
  "(CarID, Make, Color, PetName) Values" +
  "('{0}', '{1}', '{2}', '{3}')",
  newCarID, newCarMake, newCarColor, newCarPetName);
 dAdapter.InsertCommand = new SqlCommand(sql);
 dAdapter.InsertCommand.Connection = cnObj;
 // Обновление таблицы Inventory с учетом новой строки.
 DataRow newCar = dsCarInventory.Tables["Inventory"].NewRow();
 newCar["CarID"] = newCarID;
 newCar["Make"] = newCarMake;
 newCar["Color"] = newCarColor;
 newCar["PetName"] = newCarPetName;
 dsCarInventory.Tables["Inventory"].Rows.Add(newCar);
 dAdapter.Update(dsCarInventory.Tables["Inventory"]);
}

После создания объекта команды он "подключается" к адаптеру с помощью свойства InsertCommand. Затем в DataTable таблицы Inventory добавляется новая строка, представленная объектом dsCarInventory. После добавления DataRow в DataTable адаптер выполнит SQL-команду, обнаруженную в свойстве InsertCommand, поскольку значением RowState этой новой строки является DataRowState.Added.

Оглавление книги


Генерация: 1.977. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз