» Главная
eXcode.ru » Статьи » .NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 5





Операции записи




Фиксация (committing) изменений в иерархических данных, содержащих несколько наборов результатов из двух или более связанных таблиц, требует сохранения целостности данных. Например, ссылочная целостность означает, что внешний ключ в любой ссылающейся таблице (referencing table) должен указывать на существующую строку в таблице, на которую делается ссылка (referenced table). Следовательно, родительскую строку в этой таблице нельзя удалять до тех пор, пока на нее есть ссылка в другой таблице. Точно так же в ссылающуюся таблицу нельзя вставлять строки, если нет соответствующих строк в таблице, на которую она ссылается.

Так как ADO.NET-объект DataSet позволяет извлекать, обрабатывать и модифицировать данные в базе, он гарантирует ссылочную целостность таблиц при добавлении, изменении и удалении строк. Кроме того, этот объект позволяет выполнять каскадные обновления и удаления с сохранением целостности данных.

Применение ADO.NET-объекта DataAdapter

Метод Update объекта DataAdapter передает изменения, кэшированные в объекте DataSet, источнику данных. Для добавления новых строк DataAdapter использует InsertCommand, для изменения строк — UpdateCommand, а для удаления строк из базы данных — DeleteCommand. Когда вы вызываете метод Update, DataAdapter анализирует измененные строки и определяет, какой из объектов Command нужно выполнить для передачи отложенных изменений в каждой строке.

Прежде чем вызывать Update, вы должны настроить свойства InsertCommand, UpdateCommand или DeleteCommand — в зависимости от того, какие изменения были внесены в данные в DataSet. Например, если из DataSet удалялись строки, следует установить свойство DeleteCommand. Для автоматического формирования команд Insert, Update и Delete можно задействовать преимущества объекта CommandBuilder. Если вы указываете DataAdapter-свойства InsertCommand, UpdateCommand или DeleteCommand, метод Update соответственно выполняет команды insert, update или delete для каждой вставленной, обновленной или удаленной строки в DataSet. В ином случае CommandBuilder — в зависимости от значения свойства SelectCommand объекта DataAdapter — генерирует SQL-команды, необходимые для внесения изменений в базу данных. Поэтому, чтобы CommandBuilder генерировал команды Insert, Update и Delete, вы должны соответственно настроить свойство SelectCommand.

Лучше всего самостоятельно указывать InsertCommand, DeleteCommand или UpdateCommand, поскольку это позволяет вам явно контролировать, как выполняется обновление, и повышает производительность по сравнению с тес случаем, когда команды генерируются автоматически. Это особенно важно, если ваш код за одно обращение к источнику данных выполняет операции над несколькими строками, чтобы сократить частоту обмена данными с сервером.

Для свойств InsertCommand, UpdateCommand и DeleteCommand объекта DataAdapter можно указывать параметризованные запросы или хранимые процедуры. Параметры в параметризованных запросах или процедурах соответствуют столбцам в объекте DataTable. Таким образом, один объект DataAdapter поддерживает обновления только одной таблицы в вашей базе данных. Поэтому при обновлении базы данных для каждой таблицы в объекте DataSet потребуется отдельный объект DataAdapter.

Источник: www.cyberguru.ru
К началу статьи





Добавил: Дата публикации: 2007-10-25 10:30:21
Рейтинг статьи:3.00 [Голосов 5]Кол-во просмотров: 7192

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Вы программируйте ради
денег
15% (31)
славы
4% (8)
удовольствия
33% (68)
знаний
20% (40)
просто так
5% (10)
все вместе
23% (47)

Проголосовало: 204
Что общего между Интернетом и п@нисом?
1. Те, у кого он есть, весьма не хотели бы с ним расстаться.
2. Те, у кого он есть, считают тех, у кого его нет, низшими существами.
3. Те, у кого его нет, признают, что это штука неплохая, но не понимают, почему вокруг него столько шуму.
4. Те, у кого его нет, не против его попробовать.
5. Он был задуман для передачи информации, существенной для сохранения вида, а превратился в забаву.
6. Если не принять мер предосторожности, то от него можно подхватить вирус.
Рейтинг: 8.7/10 (11)
Посмотреть все анекдоты