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



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





Псориаз на голове

Научно-медицинский центр. Онлайн-консультация.

ogneva.ru


Фотоэпиляция цены

Клиника красоты. Изготовление медицинских лазеров.

lbh.su




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




Фиксация (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]Кол-во просмотров: 4539

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

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

Пароль:



Регистрация

Как вы относитесь к блогам?
Не знаю что это такое!
17% (13)
ничего особенного
35% (27)
иногда читаю чужие блоги
27% (21)
постоянно читаю блоги
1% (1)
веду свой блог
5% (4)
считаю блоги двигателем интернета
6% (5)
ЖЖ рулит, фсе остальное ф топку!
9% (7)

Проголосовало: 78
Муж в больнице после операции. Приехала навестить, а там обход. Врач спрашивает:
-Температура какая?
Он отвечает:
-Нормальная! 33,6...
Врач странно так посмотрела, говорит:
-Это нормальная?
Муж:
-Нет?
А я стою и думаю: Нормальная, не нормальная, а у меня больше и не бывает...
Рейтинг: 3/10 (1)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » .NET