Отображение имен базы данных в понятные имена

Отображение имен базы данных в понятные имена

Вы, скорее всего, знаете, что администраторы баз данных склонны создавать имена, таблиц и столбцов, которые нельзя назвать понятными для конечных пользователей. Но хорошей вестью является то, что объекты адаптера данных поддерживают внутреннюю строго типизованную коллекцию (DatаTableМаррing-Collection) типов System.Data.Common.DataTableMapping, доступную с помощью свойства TableMappings.

Рис. 22.18. Заполнение DataSet с помощью объекта адаптера данных

При желании вы можете использовать эту коллекцию для того, чтобы информировать DataTable о "дисплейных именах", которые должны использоваться при выводе содержимого. Предположим, например, что вы хотите отобразить имя Inventory, используемое для таблицы в рамках СУБД, в дисплейное имя Ассортимент. Кроме того, предположим, что вы хотите отобразить имя столбца CarID в виде Номер, а имя столбца PetName – в виде Название. Для этого в объект адаптера данных перед вызовом метода Fill() добавьте следующий программный код (и не забудьте указать using для пространства имен System.Data.Common).

static void Main(string[] args) {

 …

 // Отображение имен столбцов БД в имена, понятные пользователю.

 DataTableMapping custMap = dAdapt.TableMappings.Add("Inventory", "Ассортимент");

 custMap.ColumnMappings.Add("CarID", "Номер");

 custMap.ColumnMappings.Add("PetName", "Название");

 dAdapt.Fill(myDS, "Inventory");

 …

}

Теперь, выполнив программу, вы обнаружите, что метод PrintDataSet() отображает "понятные" имена объектов DataTable и DataRow, а не имена, заданные структурой базы данных.

Исходный код. Проект FillDataSetWithSqIDataAdapter размещен в подкаталоге, соответствующем главе 22.