Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 891 / 20 | Оценка: 4.40 / 4.20 | Длительность: 77:34:00
Самостоятельная работа 5:

Элементы управления 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-запросы)


и щелкните по кнопке Next.

Откроется поле ввода, обозначенное вопросом What data should the data adapter load into the dataset? (Какие данные должны загружаться этим адаптером данных в набор данных?)


  • Введите в поле ввода SQL-запрос к базе Northwind

Select CustomerID, CompanyName From Customers

  • Щелкните на кнопке Advanced Options (Дополнительные опции) и в появившемся окне снимите отметку с верхнего флажка, чтобы запретить модификацию базы (сейчас нам нужно только прочитать данные из базы)


  • Щелкните на кнопке Next для просмотра результатов выполнения оператора выборки. Если Вы все сделали без ошибок, то окно должно иметь точно такой вид, как приведено ниже


  • Щелкните на кнопке Finish, чтобы мастер создал адаптер данных и объект соединения. После этого оболочка вернется опять к режиму Form Designer


Обратите внимание, что под формой расположена область Components (иногда для удобства будем эту область называть подвалом формы ), в которой оболочка располагает невизуальные компоненты приложения. Это намного удобнее, чем в Builder, поскольку не портится внешний вид формы в режиме проектирования. В области Components появился объект соединения, созданный мастером.

После создания двух объектов перейдем к созданию объекта класса DataSet - универсального источника данных.

  • Щелкните правой кнопкой мыши на объекте oleDbDataAdapter1 и из контекстного меню выполните команду Generate Dataset


  • Откроется диалоговое окно Generate Dataset, в котором все установки оставьте по умолчанию


  • После щелчка на кнопке OK будет создан объект набора данных с именем dataSet11 (для соединения с индексом 1 можно создать несколько наборов данных с индексами 11, 12, ...). Теперь окно Design оболочки имеет область Components следующего вида


Теперь приступим к созданию средств отображения данных пользователю. Для этого используем компонент ListBox.

  • Перенесите (двойным щелчком) на форму компонент ListBox из вкладки Windows Forms панели Toolbox


  • В панели Properties установите свойства компонента ListBox в соответствии с таблицей
Свойства компонента 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

и мы, как разработчики, не должен вносить туда изменения (по возможности воздерживаться - пока)!!!