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



           

Вывод связанных таблиц в два элемента DataGrid1 - часть 2


Завершив настройку таблиц и колонок, переходим к определению связи между таблицами. Выделяем объект dataSet1, в окне Properties в поле свойства Relations щелкаем на кнопку

(...). В появившемся редакторе Relation Collection Editor нажимаем кнопку "Add" и создаем отношение "Дополнительная_информация" между таблицами по ключевому полю "Код туриста". Завершив работу с редактором, переходим в код формы. Подключаем пространство имен для работы с базой данных Microsoft Access:

using System.Data.OleDb;

Добавляем строки для подключения к базе и извлечения данных:

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

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

public Form1() {

InitializeComponent();

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

OleDbCommand myCommand2 = new OleDbCommand(); myCommand2.Connection = conn; myCommand2.CommandText = commandText2; OleDbDataAdapter dataAdapter2 = new OleDbDataAdapter(); dataAdapter2.SelectCommand = myCommand2;

conn.Open(); dataAdapter.Fill(dsTourists.Tables["Туристы"]); dataAdapter2.Fill(dsTourists.Tables["Информация о туристах"]); conn.Close();

dgTourists.DataSource = dsTourists; dgTourists.DataMember = "Туристы";

dgInfoTourists.DataSource = dsTourists; dgInfoTourists.DataMember = "Туристы.Дополнительная_информация"; }

Запускаем приложение (рис. 9.14):

 Готовое приложение Visual2DataGrid2Table.
<br><br><br>
<center><a href="index.htm">Содержание</a>  <a href="09-vyvod-svjazannyh-tablic-v-dva-jelementa-datagrid1.htm">Назад</a>  <a href="09-vyvod-svjazannyh-tablic-v-dva-jelementa-datagrid1-3.htm">Вперед</a>
<br><br><br>
<hr size=3 width=728 color=green>
<!-- Yandex.RTB R-A-428576-2 -->
<div id="yandex_rtb_R-A-428576-2"></div>
<script type="text/javascript">
    (function(w, d, n, s, t) {
        w[n] = w[n] || [];
        w[n].push(function() {
            Ya.Context.AdvManager.render({
                blockId: "R-A-428576-2",
                renderTo: "yandex_rtb_R-A-428576-2",
                async: true
            });
        });
        t = d.getElementsByTagName("script")[0];
        s = d.createElement("script");
        s.type = "text/javascript";
        s.src = "//an.yandex.ru/system/context.js";
        s.async = true;
        t.parentNode.insertBefore(s, t);
    })(this, this.document, "yandexContextAsyncCallbacks");
</script><br>
<br>
<center>
<hr size=3 width=728 color=blue>
<!--LiveInternet counter--><script type="text/javascript">
document.write(<\/a>')