Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по C#_Часть1.doc
Скачиваний:
90
Добавлен:
19.08.2019
Размер:
2.54 Mб
Скачать
      1. Диалоговое окно Построитель условий поиска

Диалоговое окно Построитель условий поиска применяется для автоматического создания интерфейса поисковой системы на существующей форме на сонове параметризованного запроса на SQL.

Пример. Пусть необходимо создать пользоватьельский интерфейс для поиска данных о сотруднике по фамилии. Для этого необходимо:

  1. Создать DataGridView для таблицы, по которой будет вестись поиск.

  2. В меню «Задачи» к DataGridView выбрать команду «Добавить запрос»:

  1. В открывшемся окне прописать имя нового запроса, например FindFio и нажать кнопку «Построитель запроса…».

  1. В следующем окне к уже имеющейся команде добавить предложение «Where поле=@переменная».

  2. Нажать кнопку «Выполнить запрос», ввести значение параметра и нажать кнопку ОК.

Если, созданный запрос не содержит ошибок, то его результаты появятся в окне Построителя запроса:

  1. Нажать кнопку ОК.

В результате появится панель инструментов для поиска:

В области компонентов появится новый компонент FindFioToolStrip. Названия полей на форме и расположение панели поиска можно поменять, например:

Если созданная панель поиска не устраивает, то:

  1. Удалите панель поиска.

  2. Создайте на форме необходимый элемент управления, например, текстовое поле, для ввода параметра поиска.

  3. Пропишите по кнопке поиска команду:

this.Адаптер.Метод_поиска(this.БД.таблица, искомое значение);

Например,

this.personTableAdapter.FindFio(this.sotrudnicDataSet1.person, textBox1.Text);

Изменение запроса

Изменить созданный запрос можно одним из следующих способов:

  • В меню «Задачи» к Адаптеру таблицы, например, personTableAdapter, выбрав команду «Изменить запросы в конструкторе наборов данных…»

  • В контекстном меню к таблице выбрав команду «Настроить…»

Поиск по неполному значению

Если необходимо осуществить поиск в строковых полях по неполному значению, то предложение WHERE должно выглядеть следующим образом:

«Where поле like @переменная»

Поиск по нескольким значениям

Если необходимо осуществить поиск по нескольким полям, то предложение WHERE должно выглядеть подобно следующему:

«Where (условие1) and (условие2)»

Восстановление всех записей в таблице

Если необходимо скрыть результаты поиска и отобразить все данные таблицы, то следует прописать команду:

this.Адаптер.Fill(this.БД.Таблица);

например,

this. personTableAdapter.Fill(this.sotrudnicDataSet1.person);

Сортировка

Для сортировки данных в таблице по одному определенному полю следует применять команду:

Источник.Таблица = "поле направление";

например,

if (comboBox1.Text=="фамилия") personBindingSource.person="fio Desc";

Для указания направления сортировки применяют ключевые слова: Desc – сортировка по убыванию, Asc – сортировка по возрастанию.

    1. Агрегирование

Для применения к полям таблицы функций агрегирования и отображения результатов этих функций на форме, необходимо:

  1. Открыть конструктор данных, например, выбрав в контекстном меню к БД в окне Источники данных команду Изменить набор данных в конструкторе:

  1. Если таблица запросов (DataTable) отсутствует, то создать ее. В нашем примере это таблица All.

  2. Через контекстное меню к таблице запросов выбрать команды Добавить, Запрос…

  1. В следующем окне нажать кнопку Далее:

  1. В следующем окне выбрать команду «Инструкция Select, возвращающая одиночное значение» и нажать кнопку Далее

  1. В следующем окне нажать кнопку «Построитель запросов»

  1. В следующем окне необходимо прописать запрос SQL, например:

Select функция(поле) AS имя_результата

From таблица

Замечание. Все поля должны быть выключены.

  1. Для проверки созданного запроса можно нажать кнопку «Выполнить запрос». Если ошибки отсутствуют, то в появившемся окне проверки запроса следует нажать кнопку «ОК», а в окне Построитель запросов – кнопку «Далее».

  2. В окне Выбор имени функции следует ввести имя для новой функции агрегирования и нажать кнопку «Далее».

  1. Убедиться в правильности действий, «Готово»

  1. Вызвать метод на форме, например:

label8.Text = this.allTableAdapter.Avg_sal().ToString();

Пример:

Замечания.

1) Если запрос должен возвращать больше одного значения, то на шаге пятом следует выбрать команду «Запрос Select, возвращающий строки»

2) Если необходимо посчитать функцию агрегирования для определенной совокупности строк, то следует усложнить запрос:

Select функция(поле) As название результата

From таблица

Where поле=@перем

При этом изменится вызов

label4.Text =this.Адаптер.Avg_sal(значение).ToString();