Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

DataRow




Мы видели, что коллекция объектов DataColumn представляет схему объекта DataTable. А коллекция объектов DataRow представляет конкретные данные в таблице. И если на складе имеются 20 автомобилей, то для хранения информации о них нужно 20 объектов DataRow. Некоторые (но не все) члены класса DataRow перечислены ниже:

HasErrors, GetColumnsInError(), GetColumnError(), ClearErrors(), RowError Свойство HasErrors возвращает логическое значение, означающее наличие ошибок. Если они есть, то метод GetColumnsInError() позволяет получить ошибочные столбцы, а метод GetColumnError() — получить описание ошибки. Аналогично, метод ClearErrors() удаляет из строки всю информацию об ошибках. Свойство RowError позволяет создать текстовое описание ошибки для данной строки
ItemArray Свойство, задающее или получающее все значения столбцов строки в виде массива объектов
RowState Свойство, позволяющее зафиксировать текущее состояние объекта DataRow в содержащем его DataTable с помощью значений перечисления RowState (новый, измененный, не измененный или удаленный)
Table Свойство, позволяющее получить ссылку на объект DataTable, содержащий данный объект DataRow
AcceptChanges(), RejectChanges() Методы для фиксации или отмены всех изменений, выполненных в данной строке с момента последнего вызова AcceptChanges()
BeginEdit(), EndEdit(), CancelEdit() Методы, начинающие, заканчивающие или отменяющие операцию редактирования для объекта DataRow
Delete() Метод, помечающий данную строку для удаления при вызове метода AcceptChanges()
IsNull() Метод, получающий значение, которое указывает, содержит ли заданный столбец пустое значение

Работа с объектами DataRow несколько отличается от работы с DataColumn: невозможно напрямую создать экземпляр данного типа, т.к. у него нет общедоступного конструктора:

// Ошибка! Нет общедоступного конструктора!DataRow dr = new DataRow();

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

// Добавление строк в таблицу Inventory DataRow carRow = inventoryTable.NewRow(); carRow["Make"] = "BMW"; carRow["Color"] = "Black"; carRow["PetName"] = "Hamlet"; inventoryTable.Rows.Add(carRow); carRow = inventoryTable.NewRow(); carRow[1] = "Saab"; carRow[2] = "Red"; carRow[3] = "Sea Breeze"; inventoryTable.Rows.Add(carRow);

Если передать методу индексатора типа DataRow неверное имя столбца или позицию, будет сгенерировано исключение времени выполнения.

Теперь у вас есть один объект DataTable, содержащий две строки. Конечно, этот общий процесс можно повторить, чтобы создать ряд объектов DataTable, определить их схемы и заполнить данными. Но прежде чем вставить объект inventoryTable в объект DataSet, необходимо разобраться с очень важным свойством RowState.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 456; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.