Российский Государственный Технологический Университет им. К.Э. Циолковского
Опубликован: 02.03.2007 | Доступ: свободный | Студентов: 5677 / 802 | Оценка: 3.96 / 3.45 | Длительность: 27:04:00
ISBN: 978-5-9556-0086-4
Лекция 18:

Основы ADO .NET

< Лекция 17 || Лекция 18: 123456789101112

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]);
        }
     }
  }
< Лекция 17 || Лекция 18: 123456789101112
kewezok kewezok
kewezok kewezok
Елена Шляхт
Елена Шляхт
Объясните плиз в чем отличие а++ от ++а
Почему результат разный?
int a=0, b=0;
Console.WriteLine(a++); //0
Console.WriteLine(++b); //1
a++;
++b;
Console.WriteLine(a); //2
Console.WriteLine(b); //2