Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Троелсен Э. Язык программирования С# 2010 и п...docx
Скачиваний:
113
Добавлен:
21.09.2019
Размер:
6.92 Mб
Скачать

Работа с DataRow

Вы видели, что коллекция объектов DataColumn представляет структуру DataTable. Коллекция типов DataRow представляет фактические данные таблицы. Поэтому если у вас в таблице Inventory базы данных Cars содержится 20 записей, вы можете представить эти записи с помощью 20 типов DataRow. Используя члены класса DataRow, можно вставлять, удалять оценивать и перемещать значения таблицы. Описания некоторых (но не всех) членов типа DataRow предлагаются в табл. 22.12.

Таблица 22.12. Основные члены типа DataRow

Члены

Описание

HasErrors GetColumnsInError() GetColumnError() ClearErrors() RowError

Свойство HasErrors возвращает булево значение, являющееся индикатором наличия ошибок. В этом случае можно использовать метод GetColumnslnError(), чтобы получить информацию о членах, порождающих проблемы, метод GetColumnError(), чтобы получить описание ошибки, и метод ClearErrors(), удаляющий ошибки для данной строки. Свойство RowError позволяет задать текстовое описание ошибки для данной строки

ItemArray

Свойство, возвращающее или устанавливающее значения для данной строки с помощью массива объектов

RowState

Свойство, используемое для выяснения текущего "состояния" DataRow с помощью значений из перечня RowState

Table

Свойство, используемое для получения ссылки на DataTable, содержащий данный объект DataRow

AcceptChanges()

RejectChanges() Эти методы, соответственно, фиксируют или отвергают все изменения, сделанные в данной строке с момента последнего вызова AcceptChanges()

BeginEdit() EndEdit() CancelEdit()

Эти методы, соответственно, начинают, завершают или отменяют операции редактирования для объекта DataRow

Delete()

Метод, помечающий данную строку для удаления при вызове метода AcceptChanges()

IsNull()

Метод, возвращающий значение-индикатор того, что данный столбец содержит значение null

Работа с DataRow немного отличается от работы с DataColumn, поскольку вы не можете создать напрямую экземпляр этого типа, а получаете ссылку от данного DataTable. Предположим, например, что нам нужно вставить две строки в таблицу Inventory. Метод DataTable.NewRow() позволяет добавить очередную строку в таблицу, а затем вы можете добавить в каждый столбец новые данные с помощью индексатора типа, как показано ниже.

static void Main(string[] args) {

 …

 // Добавление строк в таблицу Inventory.

 DataRow carRow = inventoryTable.NewRow();

 carRow["Make"] = "BMW";

 carRow["Colar"] = "черный";

 сarRow["PetName"] = "Hamlet";

 inventoryTable.Rows.Add(carRow);

 carRow = inventoryTable.NewRow();

 carRow["Make"] = "Saab";

 carRow["Color"] = "красный";

 carRow["PetName"] = "Sea Breeze";

 inventoryTable.Rows.Add(carRow);

}

Обратите внимание на то, что класс DataRow определяет индексатор, который может использоваться для получения доступа к данному объекту DataColumn как по числовому индексу позиции, так и по имени столбца. В результате выполнения указанных строк программного кода вы получите один объект DataTable, содержащий два столбца.