Технология Microsoft ADO.NET

       

Получение информации о структуре объекта DataSet


После загрузки схемы в объект DataSet можно получить информацию о его структуре - таблицах, столбцах, отношениях между таблицами. Для этого применяются свойства, приведенные в таблице 11.7.

Таблица 11.7. Некоторые свойства объекта DataSet

СвойствоОписание
Tables Ссылка на коллекцию DataTable
Tables.Count Количество объектов DataTable (таблиц)
Relations Ссылка на коллекцию DataRelation
Relations.Count Количество объектов DataRelation (отношений)
Relations[индекс].ParentTable Родительская таблица отношения с заданным индексом
Relations[индекс].ChildTable Дочерняя таблица отношения с заданным индексом
Tables[индекс].TableName Название таблицы с заданным индексом в коллекции DataTable
Tables[индекс].Columns Ссылка на коллекцию DataColumn (столбцов)
Tables[индекс].Columns.Count Количество объектов DataColumn (столбцов)
Tables[индекс].Columns[индекс].ColumnName Название столбца с заданным индексом в коллекции DataColumn
Tables[индекс].Columns[индекс].DataType Тип данных столбца с заданным индексом в коллекции DataColumn

Скопируйте папку приложения TypedDataSet и назовите ее "Structure TypedDataSet". Свойству Dock элемента DataGrid, расположенного на форме, устанавливаем значение "Left". Добавляем элемент Splitter. Перетаскиваем элемент RichTextBox, свойству Dock устанавливаем значение "Fill", удаляем название в поле свойства Text. В конструкторе формы после создания всех объектов добавляем следующий код:

public Form1() { ... richTextBox1.Text+= ("Структура объекта DataSet." + dsTour.DataSetName); //Вывод количества таблиц и отношений richTextBox1.Text+= ("\nКоличество таблиц: "+ dsTour.Tables.Count.ToString()); richTextBox1.Text+= ("\nКоличество отношений: "+ dsTour.Relations.Count.ToString());

for(int i=0;i<dsTour.Tables.Count;i++) { //Вывод названий таблиц richTextBox1.Text+=( "\n"+"\n Таблица: "+ dsTour.Tables[i].TableName.ToString()); richTextBox1.Text+=(" из "+dsTour.Tables[i].
Columns.Count.ToString() + " столбцов"+"\n"); for(int j=0;j<dsTour.Tables[i].Columns.Count;j++) { //Вывод названий столбцов и их типов данных richTextBox1.Text+=("\nСтолбец: "+ dsTour.Tables[i].Columns[j].ColumnName.ToString()+ " тип данных: "+ dsTour.Tables[i].Columns[j].DataType); } } //Вывод названий связанных таблиц и отношений for(int k = 0; k<dsTour.Relations.Count; k++) { richTextBox1.Text+= ("\n"+"\nРодительская таблица: " + dsTour.Relations[k].ParentTable+ " --- отношение: " + dsTour.Relations[k].ParentKeyConstraint + " --- дочерняя таблица: " + dsTour.Relations[k].ChildTable); } }

Запускаем приложение. В текстовое поле выводится информация о таблицах, полях, отношениях (рис. 11.24):


Рис. 11.24.  Структура объекта DataSet

В программном обеспечении к курсу вы найдете приложение Structure TypedDataSet (Code\Glava5\ StructureTypedDataSet).


Содержание раздела