Изменение объекта 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.