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