Основы ADO .NET
DataColumns
DataColumnCollection задает схему таблицы, определяя тип данных каждой колонки.
В классе DataTable объявлено get -свойство DataColumns, с помощью которого может быть получена коллекция принадлежащих таблице столбцов.
public DataColumnCollection Columns {get;}
Возвращается коллекция объектов – представителей класса DataColumn таблицы. Если у объекта-таблицы нет столбцов, возвращается null.
Объекты – представители класса DataColumn образуют набор DataColumns, который является обязательным элементом каждого объекта – представителя класса DataTable.
Эти объекты соответствуют столбцам таблицы, представленной объектом – представителем класса DataTable.
Объект DataColumn содержит информацию о структуре столбца (метаданные). Например, у этого объекта имеется свойство Type, описывающее тип данных столбца.
Также имеются свойства
- ReadOnly,
- Unique,
- Default,
- AutoIncrement,
которые, в частности, позволяют ограничить диапазон допустимых значений поля и определить порядок генерации значений для новых данных.
Объект DataColumn представляет тип колонки в DataTable. Это стандартный блок, предназначенный для построения схемы DataTable.
Каждый объект DataColumn как элемент схемы характеризуется собственным типом, определяющим тип значений, которые DataColumn содержит.
Если объект DataTable создается как отсоединенное хранилище информации, представляющее таблицу базы данных, тип столбца объекта-таблицы должен соответствовать типу столбца таблицы в базе данных.
DataRows
СОДЕРЖИМОЕ таблицы (непосредственно данные) задается набором DataRows – это конкретное множество строчек таблицы, каждая из которых является объектом – представителем класса DataRow.
Его методы и свойства представлены в таблице.
HasErrors | Возвращает значение, показывающее, есть ли ошибки в строке |
Item | Перегружен. Возвращает или задает данные, сохраненные в указанном столбце. В языке C# это свойство является индексатором класса DataRow |
ItemArray | Возвращает или задает все значения для этой строки с помощью массива |
RowError | Возвращает или задает пользовательское описание ошибки для строки |
RowState | Возвращает текущее состояние строки по отношению к DataRowCollection |
Table | Возвращает объект DataTable, содержащий данную строку |
AcceptChanges | Сохраняет все изменения, сделанные с этой строкой со времени последнего вызова AcceptChanges |
BeginEdit | Начинает операцию редактирования объекта DataRow |
CancelEdit | Отменяет текущее редактирование строки |
ClearErrors | Удаляет ошибки в строке, включая RowError и ошибки, установленные SetColumnError |
Delete | Удаляет DataRow |
EndEdit | Прекращает редактирование строки |
Equals (унаследовано от Object ) | Перегружен. Определяет, равны ли два экземпляра Object |
GetChildRows | Перегружен. Возвращает дочерние строки DataRow |
GetColumnError | Перегружен. Возвращает описание ошибки для столбца |
GetColumnsInError | Возвращает массив столбцов, имеющих ошибки |
GetHashCode (унаследовано от Object ) | Служит хэш-функцией для конкретного типа, пригоден для использования в алгоритмах хэширования и структурах данных, например в хэш-таблице |
GetParentRow | Перегружен. Возвращает родительскую строку DataRow |
GetParentRows | Перегружен. Возвращает родительские строки DataRow |
GetType (унаследовано от Object ) | Возвращает Type текущего экземпляра |
HasVersion | Возвращает значение, показывающее, существует ли указанная версия |
IsNull | Перегружен. Возвращает значение, показывающее, содержит ли нулевое значение указанный столбец |
RejectChanges | Отменяет все значения, выполненные со строкой после последнего вызова AcceptChanges |
SetColumnError | Перегружен. Устанавливает описание ошибки для столбца |
SetParentRow | Перегружен. Устанавливает родительскую строку DataRow |
ToString (унаследовано от Object ) | Возвращает String, который представляет текущий Object |
Finalize (унаследовано от Object ) | Переопределен. Позволяет объекту Object попытаться освободить ресурсы и выполнить другие завершающие операции, перед тем как объект Object будет уничтожен в процессе сборки мусора. В языках C# и C++ для функций финализации используется синтаксис деструктора |
MemberwiseClone (унаследовано от Object ) | Создает неполную копию текущего Object |
SetNull | Устанавливает значение указанного DataColumn на нулевое |
Элементы этого набора являются объектами класса DataRow. В этом классе обеспечивается несколько вариантов реализации свойства Item, которые обеспечивают навигацию по множеству записей объекта DataTable и сохранение текущих изменений данных, сделанных за текущий сеанс редактирования базы.
Посредством набора Rows реализуется возможность ссылки на любую запись таблицы. К любой записи можно обратиться напрямую, и поэтому не нужны методы позиционирования и перемещения по записям таблицы.
В примере используются различные варианты индексации. По множеству строк позиционирование проводится по целочисленному значению индекса. Выбор записи в строке производится по строковому значению, которое соответствует имени столбца.
Пример:
private void PrintValues(DataTable myTable) { // Для каждой строки, которая входит в состав коллекции // строк объекта таблицы... foreach(DataRow myRow in myTable.Rows) { // Для каждой ячейки (столбца) в строке... foreach(DataColumn myCol in myTable.Columns) { // Выдать на консоль ее значение! Console.WriteLine(myRow[myCol]); } } }