Иллюстрированный самоучитель по Architecture .NET

Изменение объекта DataRow

Версии объекта DataRow

До того, как будут подтверждены внесенные в строку изменения, доступны и исходные, и измененные значения полей строки. С помощью свойства элемента строки DataRowVersion можно определить, какое именно значение вы хотите использовать. Это свойство может иметь значения Original (Первоначальное), Default (Заданное по умолчанию), Current (Текущее) и Proposed (Предложенное).

В следующем фрагменте примера DataEditing приведен код, выполняющийся до вызова метода EndEdit:

DataRow *rowToEdit = books › Rows › get_Item(0);
// книги › Строки rowToEdit › BeginEdit(); try {
rowToEdit › set_Item("AuthorId", _box(21)); Console::WriteLine(
"Book Author Id Field Current Value {0}",
// Текущее значение поля идентификатора автора книги
rowToEdit › get_Item(
"Authorld", DataRowVersion::Current)); Console::WriteLine(
"Book Author Id Field Proposed Value {0}",
// Предложенное значение поля идентификатора автора книги
rowToEdit › get_Item(
"Authorld", DataRowVersion::Proposed)); // Предложенное
Console::WriteLine(
"Book Author Id Field Default Value {0}",
// Значение по умолчанию поля идентификатора автора книги
rowToEdit › get_Item(
"Authorld", DataRowVersion::Default));
// Значение по умолчанию }

В результате программа напечатает:

Book Author Id Field Current Value 1
Book Author Id Field Proposed Value 21
Book Author Id Field Default Value 21

Вот перевод:

Текущее значение поля идентификатора автора книги 1
Предложенное значение поля идентификатора автора книги 21
Значение по умолчанию поля идентификатора автора книги 21

При выполнении транзакционного редактирования доступны значения Current (Текущее) и Proposed (Предложенное). После вызова метода CancelEdit значение Proposed (Предложенное) становится недоступным. После вызова метода EndEdit значение, имевшее атрибут Proposed (Предложенное) меняет атрибут на Current (Текущее) а значение, имевшее атрибут Proposed (Предложенное), становится недоступным.

Свойство RowState объекта DataRow

Кроме того, что в режиме редактирования доступны значения поля Current (Текущее) и Proposed (Предложенное), сам объект DataRow имеет свойство, описывающее состояние соответствующей строки. Это свойство может принимать значения Added (Добавлено), Deleted (Удалено), Detached (Отсоединено), Modified (Изменено) или Unchanged (He изменено).

Строка находится в состоянии Detached (Отсоединено) в случаях, когда она создана, но либо еще не добавлена ни в одну коллекцию объектов DataRow, либо удалена из какой-нибудь коллекции.

Какое из значений будет возвращено при использовании значения Default (Заданное по умолчанию) свойства DataRowVersion определяется значением свойства RowState.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.