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



           

Вывод связанных таблиц. Вывод двух таблиц в один элемент DataGrid


База данных Microsoft Access BDTur_firm.mdb содержит таблицу "Туристы", которая связана с другими таблицами. Было бы удобно выводить эту таблицу в элемент DataGrid вместе с другими таблицами, а также выводить связанные записи этой таблицы. Создайте новое Windows-приложение и назовите его DataGrid2Table. Перетаскиваем на форму элемент управления DataGrid, свойству Dock устанавливаем значение Fill. Переходим в код формы и подключаем пространство имен:

using System.Data.OleDb;

В конструкторе формы создаем соединение, объект OleDbCommand, определяем для него соединение и строку CommandText:

OleDbConnection conn = new OleDbConnection(connectionString); OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = conn; myCommand.CommandText = commandText;

Подключаемся к файлу базы данных BDTur_firm.mdb, указываем соответствующие параметры строк connectionString и commandText:

string commandText = "SELECT [Код туриста], Фамилия, Имя, Отчество FROM Туристы"; string connectionString = @"Provider=""Microsoft.Jet.OLEDB.4.0" ";Data Source=""D:\Uchebnik\Code\Glava1\BDTur_firm.mdb""; ID=Admin;Jet OLEDB:Encrypt Database=False";

Создаем объект DataAdapter и в свойстве SelectCommand устанавливаем значение myCommand, открываем соединение:

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = myCommand; conn.Open();

Создаем объект DataSet:

DataSet ds = new DataSet();

В объекте DataSet здесь будут храниться две таблицы - главная и связанная с ней дочерняя. Поэтому воспользуемся свойством TableMappings объекта DataAdapter для занесения в него первой таблицы "Туристы":

DataSet ds = new DataSet(); dataAdapter.TableMappings.Add("Table", "Туристы"); dataAdapter.Fill(ds);

Свойству DataSource объекта dataGrid1 указываем таблицу "Туристы" объекта ds. Обратите внимание на синтаксис - свойство Tables подразумевает наличие нескольких таблиц в объекте DataSet:




Содержание  Назад  Вперед