4.3 Тип DataRow. 4.4 Тип DataTable
4. 3 Тип DataRow
Как было сказано выше, структура таблицы определяется как коллекция объектов DataColumn. Для хранения этой коллекции в объекте DataTable используется внутренний объект DataColumnCollection. Помимо этого, для DataTable важна еще одна коллекция: коллекция объектов DataRow, которая и определяет собственно данные, хранящиеся в таблице. При помощи компонентов этого класса можно производить операции вставки, изменения и удаления строк таблицы, а также сравнивать значения, которые содержатся в строках.
Наиболее важные компоненты этого класса представлены в таблице 2. 3. Кроме того, класс DataRow определяет индексатор, при помощи которого можно получить значение из поля строки по порядковому номеру. Конечно, то же самое значение можно будет получить и по имени столбца.
Таблица 2. 3 – Основные компоненты класса DataRow
Компонент
| Назначение
|
AcceptChanges()
RejectChanges()
| Для записи в строку (или отказа от них) всех изменений, произведенных начиная с момента, когда последний раз был вызван метод AcceptChanges()
|
BeginEdit()
EndEdit()
CancelEdit()
| Начать, завершить, прекратить операции редактирования для объекта DataRow
|
Delete()
| Помечает строку для удаления при следующем вызове метода AcceptChanges()
|
HasErrors
GetColumnsInErrors()
GetColumnError()
ClearErrors()
RowError
| Свойство HasErrors возвращает логическое значение, определяющее, присутствуют ли ошибки в значениях столбцов для данной строки. Если такие ошибки есть, то для получения значений, которые нарушают установленные правила, можно использовать метод GetColumnsInErrors(). Для получения описания ошибки можно использовать GetColumnError(), а ClearErrors() просто удаляет все ошибочные значения из строки. Свойство RowError позволяет настроить текстовое описание для ошибки в столбце
|
IsNull()
| Возвращает информацию о том, содержит ли строка в указанном поле пустое значение (типа NULL)
|
ItemArray
| Позволяет получить или установить значения всех полей строки при помощи массива объектов
|
RowState
| Позволяет получать информацию о текущем состоянии объекта DataRow. Используются значения из перечисления RowState
|
Table
| Это свойство используется для получения указателя на таблицу, содержащую текущий объект DataRow
|
Главное назначение свойства RowState – определять (в процессе выполнения программы), в каком состоянии находятся выбранные строки в таблице: были ли они изменены, только что вставлены и т. п. Для этого свойства используются значения из перечисления DataRowState (таблица 2. 4).
Таблица 2. 4 – Значения перечисления DataRowState
Значение
| Описание
|
Deleted
| Строка была изменена при помощи метода DataRow. Delete
|
Detached
| Строка была создана, но она еще не является частью DataRowCollection. Обычно строка находится в таком состоянии непосредственно после вставки или после принудительного вывода из коллекции DataRowCollection
|
Modified
| Строка была изменена, но метод AcceptChanges() еще не вызывался
|
New
| Строка была добавлена в коллекцию DataRowCollection, но метод AcceptChanges() еще не был вызван
|
Unchanged
| Строка не была изменена с момента последнего вызова метода AcceptChanges()
|
4. 4 Тип DataTable
Класс DataTable используется для создания в оперативной памяти моделей табличных наборов данных. Можно создавать объекты DataTable программным образом, однако чаще в приложениях объект DataTable создается автоматически с помощью возможностей DataSet и типов, определенных в пространствах имен System. Data. OleDb и System. Data. SqlClient. Наиболее важные свойства DataTable представлены в таблице 2. 5.
Таблица 2. 5 – Основные свойства класса DataTable
Свойство
| Описание
|
CaseSensitive
| Определяет, будет ли при сравнении символьных данных в таблице учитываться регистр символов. По умолчанию – false (не будет)
|
ChildRelations
| Возвращает коллекцию подчиненных отношений (DataRelationCollection) для объекта DataTable (если такие отношения есть)
|
Columns
| Возвращает набор столбцов для таблицы
|
Constraints
| Позволяет получить коллекцию ограничений, определенных в столбце (ConstraintCollection)
|
Продолжение таблицы 2. 5
Свойство
| Описание
|
DataSet
| Позволяет получить ссылку на объект DataSet, к которому принадлежит данная таблица (если такой объект есть)
|
DefaultView
| Позволяет получить настроенное представление для таблицы, которое может включать в себя, например, только некоторые выбранные пользователем столбцы или данные о положении курсора
|
MinimumCapacity
| Позволяет получить или установить исходное количество строк в таблице (по умолчанию – 25)
|
ParentRelations
| Позволяет получить коллекцию родительских отношений для данного объекта DataTable
|
PrimaryKey
| Позволяет получить или установить массив столбцов, которые являются первичным ключом в таблице
|
Rows
| Возвращает набор строк, относящихся к таблице
|
TableName
| Позволяет получить имя таблицы или определить его. Значение для этого свойства может быть установлено через конструктор таблицы
|
Графическая схема наиболее важных компонентов DataTable представлена на рисунке 2. 1. Следует обратить внимание, что схема не имеет никакого отношения к иерархии классов (к примеру, класс DataRow не является классом, производным от DataRowCollection ). Эта схема представляет логические отношения «иметь» (“has-a”) между наиболее важными компонентами класса DataTable (например, объекты DataRow принадлежат к объекту DataRowCollection ).
Можно получить доступ через свойство Rows
|
Можно получить доступ через свойство Columns
|
Можно получить доступ через свойство Constraints
|
Рисунок 2. 1 – Отношения компонентов DataTable
Наиболее важные методы DataTable представлены в таблице 2. 6.
Таблица 2. 6 – Основные методы класса DataTable
Метод
| Описание
|
AcceptChanges()
| Подтверждает все изменения, сделанные в таблице после предыдущего вызова метода
|
Clear()
| Очищает все данные объекта DataTable
|
Compute(String expr, String filter)
| Выполняет вычисление выражения expr в строках таблицы, удовлетворяющих фильтру filter
|
Copy()
| Копирует структуру и данные объекта DataTable
|
NewRow()
| Создает новую запись (объект DataRow) данной таблицы
|
RejectChanges()
| Отменяет все изменения, сделанные после загрузки таблицы либо после последнего вызова метода AcceptChanges
|
Reset()
| Сбрасывает объект DataTable в исходное состояние
|
Select()
| Возвращает массив всех записей таблицы (объектов DataRow)
|
Select(String filter)
| Возвращает массив записей таблицы (объектов DataRow), соответствующих фильтру filter
|
Воспользуйтесь поиском по сайту: