Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПИС ИМОП 2.doc
Скачиваний:
7
Добавлен:
23.08.2019
Размер:
6.07 Mб
Скачать

4.5.1. Создание Windows-формы

На первом шаге создается Windows-форма в следующей последовательности.

  1. Из меню File выберите команду Add Windows Form.

  2. Появиться диалоговое окно Add New Iten.

  1. Нажмите кнопку Add и в проект будет добавлена новая форма с именем Form2.

На следующем шаге добавьте к форме и сконфигурируйте набор данных в следующей последовательности.

□ Создайте адаптер данных, с использованием соответствующего мастера. Адаптер данных содержит SQL-запрос, который будет считывать информацию из таблицы базы данных и передавать ее объекту DataSet. Мастер поможет создать SQL-запрос, а также соединение с базой данных.

□ Сгенерируйте схему набора данных. При создании схемы Visual Studio создаст и новый класс DataSet, который будет добавлен к форме.

4.5.2. Создание и конфигурирование объектов DataConnection и DataAdapter

Для создания и конфигурирования объектов DataConnection и DataAdapter выполните следующие действия.

1. Из вкладки Data окна Toolbox, перенесите на форму объект OleDbDataAdapter.

Будет запущен мастер Data Adapter Configuration Wizard, который поможет создать объекты DataConnection и DataAdapter.

2. В мастере выполните следующие действия.

• На второй странице создайте или выберите соединение, указывающее на базу данных Pubs вашего SQL-сервера (рис. 4.26).

Рис. 4.26. Выбор соединения, указывающего на базу данных Pubs

  • На третьей странице укажите, что вы хотите использовать SQL- запрос для обращения к базе данных.

  • На четвертой странице создайте следующий SQL-запрос (рис. 4.27):

SELECT au_id, au_lname, state FROM authors WHERE (state=?)

Рис. 4.27. Формирование запроса в окне Query Bilder

Вопросительный знак (?) представляет собой метку-заполнитель для параметра. (Если вы используете класс SqlDataAdapter, то на месте знака вопроса будет стоять переменная для принятия значения от параметра, например @state.)

Примечание

Для помощи формирования SQL-запроса нажмите Query Builder, чтобы запустить мастер формирования запросов Query Builder. Чтобы сформировать метку-заполнитель для параметра, введите вопросительный знак в столбец Criteria для поля state.

3. Мастер создаст соединение с базой данных (объект OleDbConnection1) и адаптер данных (объект OleDbDataAdapterl).

Адаптер данных фактически будет содержать четыре SQL-запроса: один для выборки записей, который вы собственно и создали на основе предложения select, а также три дополнительных запроса — для модификации, добавления и удаления записей (на основе предложений update, insert и delete).

В этом примере мы будем использовать только один запрос на выборку записей на основе предложения select. Перечень параметров команды SelectCommand можно посмотреть в окне свойств (рис. 4.28).

Рис. 4.28. Доступ к коллекции параметров

Сам SQL-запрос с предложением select будет храниться в свойстве SelectCommand адаптера данных. Свойство SelectCommand представляет собой объект команды данных (объект типа OleDbCommand), в котором содержится не только SQL-запрос, но и другая информация, необходимая для выполнения SQL-запроса. Наиболее важным элементом команды данных является коллекция параметров parameters. Эта коллекция содержит набор параметров (типа OleDbParameter), причем каждый параметр соответствует одной из меток-заполнителей (поименованному параметру) SQL-запроса. В этом примере мы использовали одну метку-заполнитель, значит, в коллекции Parameters метке-заполнителю будет соответствовать единственный параметр — значение для поля state (рис. 4.29).

Рис. 4.29. Коллекция параметров команды SELECT

По умолчанию, Data Adapter Configuration Wizard при формировании параметров присваивает им имена соответствующих столбцов таблицы базы данных. В нашем примере задана только одна метка-заполнитель для столбца state, соответственно мастером будет создан один параметр с именем state. Позже мы узнаем, как присвоить значение этому параметру перед выполнением SQL-запроса.