Иллюстрированный самоучитель по Architecture .NET

Использование наборов данных. Множественные таблицы в объекте DataSet (Набор данных).

Метод SqlDataAdapter::FillSchema заполняет DataSet (Набор данных) данными из таблиц, а также информацией о первичных ключах, связанных с таблицами. Затем программа просматривает содержимое таблиц и выводит на печать данные и первичные ключи таблиц. Доступ к содержащимся в DataTable (Таблица данных) объектам DataColumn осуществляется с помощью коллекции Columns (Столбцы), также являющейся частью объекта DataTable (Таблица данных).

lEnumerator *pEnum = dataset › Tables › GetEnumerator();
// набор данных › Таблицы while (pEnum › MoveNext ()) {
DataTable *t =
dynamic_cast<DataTable *>(pEnum › Current);
Console::WriteLine(t › TableName);
DataColumn *dc [] = t › PrimaryKey; for (int i=0; i<dc › Length; i++)
{
Console::WriteLine(
"\tPrimary Key Field {0} = {!}", // " \t Поле первичного ключа {0} = {1} ", _box(i),
dc[i] › ColumnName); }
Console::Write("\t"); // Запись
lEnumerator *pEnum = t › Columns › GetEnumerator();
// Столбцы while (pEnum › MoveNext()) {
DataColumn *c =
dynamic_cast<DataColumn *>(pEnum › Current);
Console::Write ("{0, -20}", c › ColumnName); // Запись }
Console::WriteLine("");
pEnum = t › Rows › GetEnumerator();
// Строки while (pEnum › MoveNext()) {
DataRow *r =
dynamic_cast<DataRow *>(pEnum › Current);
Console::Write("\t"); // Запись for (int i=0; i<r › ItemArray.Length; i++)
Console::Write (// Запись "{0, -20}",
r › get_Item(i) › ToString() › Trim()); // Вырезка Console::WriteLine(""); } }

Программа выводит на экран название таблицы, первичные ключи, названия столбцов и данные таблиц:

Order Details
Primary Key Field 0 = OrderlD
Primary Key Field 1 = ProductID
OrderlD ProductID UnitPrice Quantity Discount
10285 1 14.4 45 0.2
10294 1 14.4 18 0
Shippers
Primary Key Field 0 = ShipperlD ShipperlD CompanyName Phone
1 Speedy Express (503) 555-9831
2 United Package (503) 555-3199
3 Federal Shipping (503) 555-9931

А вот и перевод:

Подробности заказа
Поле первичного ключа 0 = OrderlD
Поле первичного ключа 1 = ProductID
Идентификатор заказа Идентификатор продукта Цена Количество Скидка
10285 1 14.4 45 0.2
10294 1 14.4 18 О
Грузоотправители
Поле первичного ключа 0 = ShipperlD
Идентификатор грузоотправителя Название компании Телефон
1 Быстрый экспресс (503) 555-9831
2 Объединение пакет (503) 555-3199
3 Федеральная отгрузка (503) 555-9931
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.