Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Свойство DataRow.RowState

Свойство DataRow.RowState

Свойство RowState оказывается полезным тогда, когда необходимо программно идентифицировать набор всех строк в таблице, которая, например, была изменена, только что создана и т.д. Это свойство может принимать любое значение из перечня DataRowState. Описания этих значений предлагаются в табл. 22.13.

Таблица 22.13. Значения перечня DataRowState

Значение Описание
Added Строка была добавлена в DataRowCollection, но метод AcceptChanges() не вызывался
Deleted Строка была удалена с помощью метода Delete() объекта DataRow
Detached Строка была создана, но не является частью коллекции DataRowСollection. Объект DataRow находится в этом состоянии после своего создания до того, как будет добавлен к коллекции (или же после удаления этого объекта из коллекции)
Modified Строка была изменена, но метод AcceptChanges() не вызывался
Unchanged Строка не изменилась со времени последнего вызова AcceptChanges()

Во время программных манипуляций строками объекта DataTable свойство RowState устанавливается автоматически.

static void Маin(string[] args) {
 …
 DataRow carRow = InventoryTable.NewRow();
 // Выводит 'Состояние строки: Detached.'
 Console.WriteLine("Сoстояние строки: {0}.", carRow.RowState);
 carRow["Make"] = "BMW";
 carRow["Color"] = "черный";
 carRow["PetName"] = "Hamlet";
 inveritoryTable.Rows.Add(carRow);
 // Выводит 'Состояние строки: Added.'
 Console.WriteLine("Состояние строки: {0}.",
 inventoryTable.Rows[0].RowState);
}

Как видите, DataRow в ADO.NET является достаточно "сообразительным" для того, чтобы контролировать текущее положение вещей. Поэтому, имея DataTable, вы можете выяснить, какие строки были изменены. Эта особенность DataSet очень важна, поскольку именно она при отправке обновленной информации в хранилище данных позволяет отправлять только измененные данные.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.541. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз