Реклама:
Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.3

Для нетипизированных наборов данных подобного не наблюдается: таблицы свойствами набора не служат. Соответственно столбцы не служат свойствами таблиц.

Синтаксис обращения к таблицам и столбцам в программном тексте также отличается для типизированных и нетипизированных наборов данных.

Если нам нужно получить значение столбца Sostav из третьей по порядку записи таблицы Kaf набора данных nd1, то для типизированного набора данных можно указывать таблицу Kaf как свойство набора данных nd1, а столбец Sostav - как свойство таблицы Kaf. Кроме того, в таблицах типизированных наборов данных их свойства-столбцы имеют тот же тип, что и данные, хранящиеся в столбце. Так, если столбец Sostav в таблице Kaf имеет тип данных short, то и свойство Sostav этой таблицы будет того же типа. Поэтому явно приводить тип результата не нужно: short s = nd1.Kaf[2].Sostav;

Для нетипизированного набора доступ к таблице выполняется через коллекцию Tables набора данных, а к значению столбца в строке - через индексатор коллекции

Rows:

short s = (short)nd1.Tables["Kaf"].Rows[2]["Sostav"];

и при этом необходимо явно приводить результат к типу значения, хранящегося в столбце, поскольку обращение вида

nd1.Tables["Kaf"].Rows[2]["Sostav"]

возвращает значение типа object. Этот синтаксис, впрочем, можно использовать и для обращения к таблицам, строкам и значениям столбцов в типизированных наборах данных - тут уж дело вкуса. Мне, например, отчего-то полюбились смешанные обращения типа

short s = (short)nd1.Kaf[2]["Sostav"]; или даже

short s = (short)nd1.Kaf.Rows[2]["Sostav"];

В конечном счете обращайтесь к структурам данных в типизированных наборах как заблагорассудится. А вот при работе с нетипизированными наборами данных такой свободы действий у нас уже нет.

3.1.4. Схема набора данных

Схема набора данных содержится в файле с расширением .xsd. Имя этого файла совпадает с именем набора данных, так что для набора данных nd схема будет размещаться в файле nd.xsd. Этот файл можно найти в дереве структуры приложения (окно Solution Explorer). Если дважды щелкнуть мышью на файле схемы набора данных, мы увидим схему в среде дизайнера схем Visual Studio .NET.

На рис. 3.4 в качестве примера приводится схема набора данных nd, в составе которого 4 таблицы и 2 отношения "один-ко-многим": между таблицами Kaf и Prep; между Kaf и Payments.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.4

Подробнее о создании схем и работе с ними рассказывается в главах, посвященных работе с типизированными наборами данных, а также главах, посвященных использованию XML.

3.1.5. Пример доступа к содержащимся в наборе структурам данных

Рассматриваемый ниже пример применим как к типизированным, так и к нетипи-зированным наборам данных. Однако в силу того, что текущая структура нетипизиро-ванного набора часто неизвестна, логичнее было предположить, что приведенное в примере "блуждание" по метаданным набора характерно для работы именно с нети-пизированными наборами данных.

Пусть имеем набор данных ndl, состоящий из четырех таблиц: Fakultet, Kaf, Prep, Payments, как это показано на рис. 3.4. При этом имеется два отношения "один-ко-многим" между таблицами Kaf и Prep, а также между Kaf и Payments. Выведем в текстовое поле textBoxl информацию о всех таблицах набора данных, столбцах каждой таблицы, об отношениях между таблицами.


⇐ Предыдущая страница| |Следующая страница ⇒