Руководство по работе с БД Firebird с использованием библиотеки ADO .Net 2.0

       

Передача изменений обратно в базу данных


После того, как мы изменили данные в DataSet, их необходимо передать обратно в базу. Для этого у объекта OleDbDataAdapter есть метод Update(). Прежде чем его использовать, необходимо настроить наш адаптер. В этом нам поможет класс OleDbCommandBuilder. Он позволяет сгенерировать команды для операций вставки, обновления и удаления, а так же создать соответствующую коллекцию параметров команд. Ниже приведен пример передачи изменений из DataSet в базу данных:

public void UpdateDataSet() { DataSet ds = new DataSet(); DataTable tbl = ds.Tables.Add("EMPLOYEE");

OleDbConnection con = ConnectionProvider.CreateConnection(); con.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter("select * from EMPLOYEE", con); adapter.SelectCommand.Transaction = con.BeginTransaction(); adapter.Fill(tbl);

//вносим изменения в DataSet

foreach (DataRow row in tbl.Rows) row["FIRST_NAME"] = row["FIRST_NAME"].ToString().ToUpper();

//генерируем команды для операций update, insert и delete OleDbCommandBuilder cmd_builder = new OleDbCommandBuilder(adapter); adapter.DeleteCommand = cmd_builder.GetDeleteCommand(); adapter.UpdateCommand = cmd_builder.GetUpdateCommand(); adapter.InsertCommand = cmd_builder.GetInsertCommand();

//обновление данных

adapter.Update(tbl);

//откат сделанных изменений

adapter.SelectCommand.Transaction.Rollback(); con.Close(); }



Содержание раздела