Опубликован: 05.08.2007 | Доступ: свободный | Студентов: 2201 / 83 | Оценка: 4.47 / 4.09 | Длительность: 20:11:00
ISBN: 978-5-9556-0097-0
Лекция 12:

Методы и свойства объекта DataAdapter. передача изменений в базу данных при помощи объекта Command

Применение свойства TableMappings для помещения в DataSet нескольких таблиц

Свойство TableMappings используется также для помещения нескольких таблиц из базы данных в один объект DataSet. Создайте новое приложение и назовите его SomeTable. Из окна Toolbox перетаскиваем на форму элемент управления TabControl, устанавливаем его свойству Dock значение Fill. В поле свойства TabPages нажимаем на кнопку(...) (рис. 12.25, А). В редакторе TabPage Collection Editor нажимаем три раза на кнопку "Add" для создания элементов со следующими свойствами (рис. 12.25, Б):

 Настройка элемента TabControl. А - запуска редактора, Б - настройка элементов

увеличить изображение
Рис. 12.25. Настройка элемента TabControl. А - запуска редактора, Б - настройка элементов
Name Text
tpCustomers Customers
tpEmployees Employees
tpOrders Orders

Завершив работу, нажимаем "ОК" - на форме появляются три вкладки. Помещаем на каждую вкладку элемент управления DataGrid с установленным значением Fill свойства Dock. Называем их "dgCustomers", "dgEmployees", "dgOrders" в соответствии с названиями вкладок. Переходим в код формы и подключаем пространство имен для работы с базой данных:

using System.Data.SqlClient;

В классе формы создаем строки commandText и connectionString:

string commandText = "SELECT * FROM Customers;
 SELECT * FROM Employees; SELECT * FROM Orders;";
string connectionString = "workstation
 id=7EA2B2F6068D473;integrated security=SSPI;data sou" +
 "rce=\"(local)\";persist security
 info=False;initial catalog=NorthwindCS";

Обратите внимание на то, что в SQL-запросе commandText используется извлечение содержимого сразу трех таблиц. В конструкторе формы создаем объекты SqlConnection, SqlCommand и SqlDataAdapter:

SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
SqlCommand myCommand = new SqlCommand();
myCommand.Connection = conn;
myCommand.CommandText = commandText;
SqlDataAdapter dataAdapter = new SqlDataAdapter();
dataAdapter.SelectCommand = myCommand;

Вызывая метод Add свойства TableMapping, мы помещаем несколько таблиц в один объект DataAdapter:

dataAdapter.TableMappings.Add("Customers", "DataSetTableCustomers");
dataAdapter.TableMappings.Add("Employees", "DataSetTableEmployees");
dataAdapter.TableMappings.Add("Orders", "DataSetTableOrders");

В параметрах метода Add передаем название таблицы в базе данных, а затем название в объекте DataSet (рис. 12.26):

 Параметры метода Add

Рис. 12.26. Параметры метода Add

Создаем объект DataSet, заполняем его данными, определяем источник данных для элементов DataGrid:

DataSet ds = new DataSet();
dataAdapter.Fill(ds);
dgCustomers.DataSource = ds.Tables[0].DefaultView;
dgEmployees.DataSource = ds.Tables[1].DefaultView;
dgOrders.DataSource = ds.Tables[2].DefaultView;

Свойство Tables принимает либо порядковый номер объекта DataTable в DataSet, либо его название ( Name ) (рис. 12.27):

 Свойство Tables

Рис. 12.27. Свойство Tables

Здесь мы применили обращение по номеру. Запускаем приложение. Перемещаясь по вкладкам, можно видеть таблицы Customers, Employees и Orders (рис. 12.28):

 Готовое приложение SomeTable

Рис. 12.28. Готовое приложение SomeTable

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