Добавление элементов отображения данных



В этом разделе мы добавим на форму несколько элементов управления-ListBox для отображения списка издательств и DataGrid для отображения наименований книг выбранного издательства. Также добавим элементы Label для описания элементов формы.

Отображение издательств в элементе ListBox

Элемент ListBox будет отображать названия издательств (содержание таблицы publishers). Этот элемент позволяет отобразить несколько записей (список издательств).

Вернемся к нашей форме (с именем по умолчанию Form3),которая была открыта при создании проекта. Если вы еще находитесь в окне XML Designer,то переключитесь на вкладку дизайнера формы (выбрав соответствующую позицию табуляции в верхней части текущего окна).

1. Из вкладки Windows Forms окна Toolbox, перетащите на форму элемент ListBox.

2. Нажмите клавишу <F4> для перехода в окно Properties.

3. В свойстве DataSource Выберите набор данных dsPublishersTitles1.

4. В свойстве DisplayMember активизируйте раскрывающийся список. Из списка выберите таблицу publishers, разверните узел publishers и затем выберите поле, содержащее наименование издательства — pub_name.

5. Когда эта процедура будет закончена, свойству DisplayMember будет присвоено значение — publishers.pubname (рис. 4.41).

 

 

Рис. 4.41 Связывание элемента ListBox с полем таблицы набора данных

 

Таким образом вы связали элемент ListBox с полем наименования издательства pub_name таблицы издательств publishers.

4. Теперь добавим на форму элемент label1 и свойству Text этого элемента присвоим значение Наименование издательства (рис. 4.42).

 

 

Рис. 4.42. Расположение на форме элементов отображения данных

 

Отображение наименований книг в элементе DataGrid

Каждое издательство может иметь список изданных книг. Каждая книга имеет несколько атрибутов: наименование, автора, год издания и пр. Чтобы отобразить информацию о книгах нужно использовать элемент управления, который может отображать не только несколько записей, но и несколько столбцов. Для этих целей подходит элемент управления DataGrid. Для этого примера мы сконфигурируем DataGrid таким образом, чтобы он показывал только наименования книг, изданных выбранным издательством. Свяжем DataGrid He с таблицей titles, а c объектом publishers_titles, созданным ранее, который устанавливает реляционные отношения между таблицами publishers и titles. Объект publishers_titles представляет собой свойство таблицы publishers. Во время работы приложения каждый раз, когда пользователь будет перемещаться к новому издательству (выбирая его в списке), будет срабатывать соответствующий метод объекта связи данных. При этом из дочерней таблицы будут отбираться только те записи, которые относятся к выбранной записи родительской таблицы. Для добавления и связывания с данными объекта DataGrid выполните следующие действия.

1. Из вкладки Windows Formsокна Toolbox,перетащите на форму элемент

DataGrid.

2. В свойстве DataSource выберите набор данных dsPublishersTitles1 в качестве источника данных.

3.   Задайте свойству DataMember значение publishers.publishers_titles.

Наберите это значение с помощью клавиатуры или выберите из выпадающего списка (рис. 4.43).

 

 

Рис. 4.43. Связывание элемента DataGrid с объектом реляционных отношений

 

Установка этих двух свойств связывает элемент DataGrid с объектом реляционных отношений между таблицами. При этом в сетке данных будут всегда отображаться дочерние записи с информацией о книгах издательства, установленного в родительской таблице.

4. Измените размеры сетки данных так, чтобы можно было видеть несколько строк и столбцов (рис. 4.44).

 

 

Рис. 4.44. Расположение на форме элемента DataGrid

Заполнение набора данных

Хотя элемент отображения данных на форме связан с набором данных, он сам не заполняется данными автоматически. Этот процесс нужно активизировать из программного кода.

Для заполнения набора данных необходимо выполнить следующие действия.

1. Дважды щелкните мышью на форме, чтобы создать обработчик события загрузки формы Load.

2. В обработчике события загрузки формы очистите набор данных, который вы создали ранее (dsPublishersTitles1), и затем вызовите метод Fill для двух адаптеров данных, указав им в качестве параметра этот же набор данных. В результате этого будут заполнены данными обе таблицы (publishers и titles).

Ниже приведен соответствующий программный код (листинг 4.15).

Листинг 4.15

' Visual Basic

Private Sub Forml_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

DsPublishersTitles1.Clear()

OleDbDataAdapterl.Fill(DsPubiishersTitles1)

OleDbDataAdapter2.Fill(DsPublishersTitles1)

End Sub

 

// C#

private void Form3_Load(object sender, System.EventArgs e)

{

dsPublishersTitles1.Clear();

oleDbDataAdapter1.Fill(dsPublishersTitles1);

oleDbDataAdapter2.Fill(dsPublishersTitles1);

}

Тестирование приложения

Теперь можно проверить работу форму, чтобы удостовериться в корректности ее работы. Для проверки работы приложения выполните следующие шаги.

1. Нажмите клавишу <F5> для запуска приложения.

2. Когда форма будет отображена:

 

• проверьте, что в элементе управление ListBox отображаются наименования издательств;

• выбирая различные издательства, убедитесь, что в сетке данных отображаются книги только выбранных издательств (рис. 4.45).

 

 

Рис. 4.45. Отображение результатов работы приложения

 

Итак, в примере этого раздела были решены две задачи: создан набор данных с двумя таблицами и отношениями между ними и создана Windows-форма, которая отобразила связанные данные. Можно несколько усовершенствовать этот пример:

□ изменить настройки и дизайн элемента DataGrid для улучшения его внешнего вида;

□ создать реляционные отношения динамически, в программном коде (в примере реляционные отношения создавались на этапе разработки приложения в XML Designer).


Дата добавления: 2018-02-15; просмотров: 408; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!