Элементы управления Data в приложениях на C#
Подключение к данным связанного списка
-
Войдите
в каталог предполагаемого размещения своей работы и создайте
новый проект приложения рабочего стола с именем WndAppAdo
-
Раскройте
вкладку Data панели Toolbox и перенесите на форму компонент OleDbDataAdapter.
Откроется окно мастера настройки конфигурации адаптера данных
В раскрывающемся списке ("Which data connection should data adapter use? - Какое подключение (связь) данных адаптер данных должен использовать?) должны сохраняться имена используемых ранее подключений и можно выбрать интересующую нас базу Northwind. Если список пуст, нужно создать новое подключение. Для этого
-
Щелкните
на кнопке New Connection..., после чего откроется окно Data Link Properties свойств
канала передачи данных. Его заполните так
-
После
щелчка на кнопке OK вновь появится предыдущее окно мастера
в котором выберите созданное соединение и щелкните на кнопке Next.
-
Появится
новое окно мастера, в котором оставьте опцию по умолчанию Use SQL statements (использовать SQL-запросы)
Откроется поле ввода, обозначенное вопросом What data should the data adapter load into the dataset? (Какие данные должны загружаться этим адаптером данных в набор данных?)
Select CustomerID, CompanyName From Customers
-
Щелкните
на кнопке Advanced Options (Дополнительные опции) и
в появившемся окне снимите отметку с верхнего флажка, чтобы
запретить модификацию базы (сейчас нам нужно только прочитать
данные из базы)
-
Щелкните
на кнопке Next для просмотра результатов выполнения оператора
выборки. Если Вы все сделали без ошибок, то окно должно иметь
точно такой вид, как приведено ниже
-
Щелкните
на кнопке Finish, чтобы мастер создал адаптер данных и объект
соединения. После этого оболочка вернется опять к режиму Form Designer
Обратите внимание, что под формой расположена область Components (иногда для удобства будем эту область называть подвалом формы ), в которой оболочка располагает невизуальные компоненты приложения. Это намного удобнее, чем в Builder, поскольку не портится внешний вид формы в режиме проектирования. В области Components появился объект соединения, созданный мастером.
После создания двух объектов перейдем к созданию объекта класса DataSet - универсального источника данных.
-
Щелкните
правой кнопкой мыши на объекте oleDbDataAdapter1 и
из контекстного меню выполните команду Generate Dataset
-
После
щелчка на кнопке OK будет создан объект набора данных с именем
dataSet11 (для соединения с индексом 1 можно создать несколько
наборов данных с индексами 11, 12, ...). Теперь окно Design
оболочки имеет область Components следующего вида
Теперь приступим к созданию средств отображения данных пользователю. Для этого используем компонент ListBox.
-
Перенесите
(двойным щелчком) на форму компонент ListBox из вкладки Windows
Forms панели Toolbox
-
В панели
Properties установите свойства компонента ListBox в соответствии
с таблицей
| Свойство | Значение |
|---|---|
| Dock | Fill |
| DataSource | dataSet11 |
| DisplayMember | Customers.CompanyName |
| ValueMember | Customers.CustomerID |
Хоть мы и правильно связали ListBox с набором данных, но если откомпилировать и запустить форму, данных в списке не будет. Для того, чтобы они загрузились в связанный с ними список ListBox, нужно написать код C#.
-
Щелкните
правой кнопкой мыши в любом месте редактора Design и в появившемся
контекстном меню выберите команду View Code, чтобы перейти
в режим редактирования кода. -
Через
раскрывающийся список редактора кода перейдите к конструктору
класса Form1()
-
Вставьте
строку кода, заполняющего объект класса ListBox, как приведено
ниже
..........................................................
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
oleDbDataAdapter1.Fill(dataSet11);
}
..........................................................
Листинг
5.1.
Код C# для заполнения списка данными
-
Постройте
проект, результат должен быть таким
Обратите внимание на код, который генерировала оболочка, пока мы манипулировали с проектом, находясь в режиме проектирования. Основная его часть спрятана в разделе
#region Windows Form Designer generated code ..................................................... #endregion
и мы, как разработчики, не должен вносить туда изменения (по возможности воздерживаться - пока)!!!













