Обновление базы данных при помощи наборов данных

что если вы модифицировали данные

До сих пор мы рассматривали только извлечение данных из базы данных. Что, если вы модифицировали данные и хотите сохранить эти изменения в базе данных? Оказывается, другой мощной возможностью класса DataSet Является его способность отслеживать изменения, производимые в данных, которые он содержит. Изменения производятся в трех формах. Вы можете Чтобы обрабатывать изменения, набор данных хранит две копии каждой строки и отслеживает для каждой строки свойство RowState, Которое может принимать значения из перечисления DataRowState. Когда вы впервые извлекаете набор строк из базы данных, они добавляются к своей таблице со значением RowState, Равным Unchanged. Когда вы модифицируете значение столбца в существующей строке, ее состояние устанавливается в Modified. Когда вы добавляете новую строку или удаляете существующую, состояние строки будет помечено соответственно как Added Или Deleted. И если вы создаете для таблицы новую строку, но еще не добавили ее к коллекции Rows, Ее состоянием будет Detached. Состояние строки позволяет адаптеру данных определить, какие строки должны быть использованы для выполнения вставок, обновлений или удалений в таблице базы данных. Когда вы изменяете значения существующей строки, текущие значения для столбцов сохраняются в одной копии строки, но исходные значения этой строки на тот момент, когда данные были извлечены, также сохраняются во второй ее копии. Это позволяет использовать исходные значения для контроля оптимистической конкуренции. Значения Rowstate и их смысл описываются в таблице Г.2. Вы обновляете базу данных набором данных, используя адаптер данных. Имейте в виду, что когда я говорю «обновляете», я имею в виду исполнение любых необходимых запросов на обновление, вставку или удаление. Постарайтесь не смешивать это со специфическими SQL-запросами UPDATE, которые воздействуют только на модифицированные строки и являются лишь одной из трех форм «обновлений».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *