Update(DataSet)
Метод выполняет необходимые операторы (INSERT, UPDATE или DELETE) для изменения строк в первой таблице объекта DataSet
.
Указанные операторы должны быть явно прописаны в соответствующих свойствах объекта DbDataAdapter
(InsertCommand, UpdateCommand, DeleteCommand), либо сконструированы с помощью класса DbCommandBuilder
.
Подробное описание см. в подпункте «Update(DataRow[])».
Синтаксис
public override int Update(DataSet dataSet);
dataSet
– объект DataSet
, используемый для обновления источника данных.
Возвращаемое значение
Количество строк, успешно обновленных из объекта DataSet
в источнике данных.
Исключения
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; // Заполнение объекта DataSet данными из БД DataSet dataset = new DataSet(); adapter.Fill(dataset); // Изменение записей в таблице DataTable dataset.Tables[0].Rows[0]["name"] = "Новый Пользователь A"; dataset.Tables[0].Rows[1].Delete(); dataset.Tables[0].Rows.Add(2, "Пользователь X"); // Обновление БД adapter.Update(dataset); // Отображение таблицы после обновления Console.WriteLine("Строки таблицы после обновления:"); foreach (DataRow row in dataset.Tables[0].Rows) { Console.WriteLine("{0}: '{1}' ", row[0], row[1]); } } }