UpdateCommand

Свойство предоставляет или устанавливает текст команды (SQL-запроса), используемой для обновления записей в источнике данных.

При использовании метода Update в случае, когда это свойство не задано и данные первичного ключа имеются в объекте DataSet, свойство UpdateCommand будет создаваться автоматически, если объект DbDataAdapter связан с объектом DbCommandBuilder.

Декларация
[BrowsableAttribute(false)]
public DbCommand UpdateCommand {get; set;};
Значение свойства

Интерфейс IDbCommand, используемый во время применения метода Update для обновления записей в источнике данных, соответствующих измененным строкам в наборе данных.

Исключения

Отсутствуют.

Пример
// C#
using System;
using System.Data;
using System.Data.Common;

class UpdateCommandSample
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString =
      "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8";
    con.Open();
    // Создание таблицы БД
    DbCommand cmd = factory.CreateCommand();
    cmd.Connection = con;
    cmd.CommandText =
      "create or replace table users ( " +
      "id integer primary key, name varchar(70));" +
      "insert into users (id, name) values (0, 'Пользователь A');" +
      "insert into users (id, name) values (1, 'Пользователь B');";
    cmd.ExecuteNonQuery();
    // Создание команды для выборки записей
    DbCommand selectCommand = factory.CreateCommand();
    selectCommand.Connection = con;
    selectCommand.CommandText =
      "select id, name from users";
    // Создание параметров для обновления записей
    DbParameter parOldId = factory.CreateParameter();
    parOldId.ParameterName = ":oldId";
    parOldId.SourceColumn = "id";
    parOldId.Direction = ParameterDirection.Input;
    parOldId.DbType = DbType.Int32;
    parOldId.SourceVersion = DataRowVersion.Original;
    DbParameter parId = factory.CreateParameter();
    parId.ParameterName = ":id";
    parId.SourceColumn = "id";
    parId.Direction = ParameterDirection.Input;
    parId.DbType = DbType.Int32;
    parId.SourceVersion = DataRowVersion.Current;
    DbParameter parName = factory.CreateParameter();
    parName.ParameterName = ":name";
    parName.SourceColumn = "name";
    parName.Direction = ParameterDirection.Input;
    parName.DbType = DbType.String;
    parName.Size = 70;
    // Создание команды для обновления записи
    DbCommand updateCommand = factory.CreateCommand();
    updateCommand.Connection = con;
    updateCommand.CommandText =
      "update users set id = :id, name = :name where id = :oldId";
    updateCommand.Parameters.Add(parId);
    updateCommand.Parameters.Add(parName);
    updateCommand.Parameters.Add(parOldId);
    // Создание объекта DbDataAdapter
    DbDataAdapter adapter = factory.CreateDataAdapter();
    adapter.SelectCommand = selectCommand;
    adapter.UpdateCommand = updateCommand;
    // Заполнение объекта DataTable данными из таблицы БД
    DataTable users = new DataTable();
    adapter.Fill(users);
    // Изменение записей в таблице DataTable
    users.Rows[0]["name"] = "Новый Пользователь A";
    users.Rows[1]["name"] = "Новый Пользователь B";
    // Обновление БД
    adapter.Update(users);
    // Отображение таблицы после обновления
    Console.WriteLine("Строки таблицы после обновления:");
    foreach (DataRow row in users.Rows)
    {
      Console.WriteLine("{0}: '{1}' ", row[0], row[1]);
    }
    // Освобождение ресурсов
    con.Close();
  }
}