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(); } }