Update(DataTable)
Метод выполняет необходимые операторы (INSERT, UPDATE или DELETE) для изменения строк в указанном объекте DataTable.
Указанные операторы должны быть явно прописаны в соответствующих свойствах объекта DbDataAdapter (InsertCommand, UpdateCommand, DeleteCommand), либо сконструированы с помощью класса DbCommandBuilder.
Подробное описание см. в пункте «Update(DataRow[])».
Синтаксис
public int Update(DataTable dataTable);
dataTable – объект DataTable, используемый для обновления источника данных.
Возвращаемое значение
Количество строк, успешно обновленных из объекта DataTable в источнике данных.
Исключения
ArgumentNullException
| Объект DataSet является недопустимым. | |
SystemException
| Возможные причины:
| |
InvalidOperationException
| Исходная таблица является недопустимой. | |
DBConcurrencyException
| Попытка выполнить оператор INSERT, UPDATE или DELETE привела к нулевому количеству обработанных записей. | |
LinterSqlException
| Код завершения СУБД ЛИНТЕР не равен 0. |
Пример
// C#
using System;
using System.Data;
using System.Data.Common;
class UpdateSample
{
static void Main()
{
// Создание фабрики классов провайдера
DbProviderFactory factory =
DbProviderFactories.GetFactory("System.Data.LinterClient");
// Соединение с БД
DbConnection con = factory.CreateConnection();
con.ConnectionString =
"Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8";
// Создание таблицы БД
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');";
con.Open();
cmd.ExecuteNonQuery();
con.Close();
// Создание команды для выборки записей
DbCommand selectCommand = factory.CreateCommand();
selectCommand.Connection = con;
selectCommand.CommandText =
"select id, name from users";
// Создание объекта DbDataAdapter
DbDataAdapter adapter = factory.CreateDataAdapter();
adapter.SelectCommand = selectCommand;
// Создание объекта DbCommandBuilder
DbCommandBuilder builder = factory.CreateCommandBuilder();
builder.DataAdapter = adapter;
// Заполнение объекта DataTable данными из таблицы БД
DataTable users = new DataTable();
adapter.Fill(users);
// Изменение записей в таблице DataTable
users.Rows[0]["name"] = "Новый Пользователь A";
users.Rows[1].Delete();
users.Rows.Add(2, "Пользователь X");
// Обновление БД
adapter.Update(users);
// Отображение таблицы после обновления
Console.WriteLine("Строки таблицы после обновления:");
foreach (DataRow row in users.Rows)
{
Console.WriteLine("{0}: '{1}' ", row[0], row[1]);
}
}
}