Значение | Описание |
---|---|
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 очень важна, поскольку именно она при отправке обновленной информации в хранилище данных позволяет отправлять только измененные данные.
Работа с DataTable
Тип DataTable определяет большое количество членов, многие из которых по именам и возможностям идентичны членам DataSet. В табл. 22.14 предлагаются описания основных свойств типа DataTable, за исключением Rows и Columns.
Таблица 22.14. Основные свойства типа DataTable