Элементы управления 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
и мы, как разработчики, не должен вносить туда изменения (по возможности воздерживаться - пока)!!!