Хелпикс

Главная

Контакты

Случайная статья





КАК СИНХРОНИЗИРОВАТЬ ИЗМЕНЕНИЯ В НАБОРЕ ДАННЫХ С



2.6. КАК СИНХРОНИЗИРОВАТЬ ИЗМЕНЕНИЯ В НАБОРЕ ДАННЫХ С

БАЗОЙ ДАННЫХ

 

В набор данных можно вносить любые изменения – добавлять новые строки, изменять и удалять существующие строки. Например, добавить строку в таблицу Sessions набора данных можно следующим образом:

// создание строки на основе схемы таблицы Sessions набора данных

DataRow newRow = ds.Tables[“Sessions”].NewRow();

// получилась пустая строка, столбцы которой должны быть заполнены newRow[“NumGroup”]=”903”; newRow[“idSubject”]=5;

. . .

// добавление созданной строки в таблицу

ds.Tables[“Sessions”].Add(newRow);

 

Однако все изменения происходят с отсоединенным набором данных, т.е. в оперативной памяти компьютера клиентского приложения, но не в базе данных. Чтобы изменения были внесены в исходную базу данных, требуется синхронизировать набор данных и базу с помощью функции класса-адаптера Update(). Однако такая синхронизации возможна только в случае, когда объектадаптер имеет инициализированные свойства-команды SelectCommand, InsertCommand, UpdateCommand, DeleteCommand. По умолчанию при создании адаптера инициализируется только SelectCommand. Возможно задание остальных команд «вручную». 

Для удобства и стандартной инициализации всех свойств-команд адаптера существует специальный класс OdbcCommandBuilder, который генерирует все команды и заполняет соответствующие свойства адаптера. После этого можно проводить синхронизацию изменений с помощью функции Update().

Приведем пример такого программного кода:

// создание подключения к базе данных на основе строки соединения 

// с указанием источника данных ODBC

OdbcConnection con = new OdbcConnection("DSN=proba");

// подключение к источнику данных con.Open();

// формирование адаптера для связи с базой данных

OdbcDataAdapter adapt = new OdbcDataAdapter

                           ("select * from Sessions", con);



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.