- •Часть 1.
- •1. Инструментарий среды Visual Studio 2008 по разработке приложений баз данных
- •1.1. Окно Источники данных
- •1.2. Окно Обозреватель баз данных
- •Создание локальной бд с помощью sql Server Compact 3.5 и Visual Studio
- •Общие сведения о локальных данных
- •Добавление в проект базы данных sql Server Compact 3.5
- •Создание новой базы данных sql Server Compact 3.5
- •Добавление существующей базы данных в проект
- •Создание новых таблиц в базе данных
- •Создание столбца с автоматической генерацией значения
- •Создание ограничения ссылочной целостности между таблицами базы данных
- •Заполнение таблиц данными
- •Подключение к данным в приложениях Windows Forms
- •Отображение данных в элементе управления DataGridView в Windows Forms
- •Отображение данных одной таблицы
- •Отображение данных из нескольких связанных таблиц
- •Создание общей таблицы
- •Создание таблицы подстановок
- •Связывание элементов управления Windows Forms с компонентом BindingSource с помощью конструктора
- •Для привязки элемента управления при разработке выполните следующие действия.
- •Переход между строками с помощью элемента управления BindingNavigator
- •Поиск заданной строки в таблице
- •Поиск строки со значением первичного ключа
- •Поиск строк по значениям столбцов
- •Диалоговое окно Построитель условий поиска
- •Агрегирование
- •Вычисляемые поля
- •Модификация строк в наборах данных
- •Добавление строк в наборы данных
- •Получение определенных версий объекта DataRow
- •Редактирование строк в объекте DataTable
- •Удаление строк из объекта DataTable
- •Сохранение данных в источнике данных
- •Чтобы внести изменения в набор данных вызовите метод AcceptChanges в DataSet, DataTable или DataRow:
- •Получение измененных записей
- •Дополнительные сведения по работе с базами данных в Visual Studio
- •Наборы данных в Visual Studio
- •Описание основных компонентов по работе с базами данных
- •Лабораторная работа №3 Создание базы данных «Автотранспорт»
- •Лабораторная работа №4 Агрегированные и вычисляемые поля
- •Лабораторная работа №5 Подстановочные, агрегированные и вычисляемые поля
- •Лабораторная работа №6 Проверочная
- •Лабораторная работа №7 Редактирование
- •Лабораторная работа №8 Поиск и сортировка данных
Диалоговое окно Построитель условий поиска
Диалоговое окно Построитель условий поиска применяется для автоматического создания интерфейса поисковой системы на существующей форме на сонове параметризованного запроса на SQL.
Пример. Пусть необходимо создать пользоватьельский интерфейс для поиска данных о сотруднике по фамилии. Для этого необходимо:
Создать DataGridView для таблицы, по которой будет вестись поиск.
В меню «Задачи» к DataGridView выбрать команду «Добавить запрос»:
В открывшемся окне прописать имя нового запроса, например FindFio и нажать кнопку «Построитель запроса…».
В следующем окне к уже имеющейся команде добавить предложение «Where поле=@переменная».
Нажать кнопку «Выполнить запрос», ввести значение параметра и нажать кнопку ОК.
Если, созданный запрос не содержит ошибок, то его результаты появятся в окне Построителя запроса:
Нажать кнопку ОК.
В результате появится панель инструментов для поиска:
В области компонентов появится новый компонент FindFioToolStrip. Названия полей на форме и расположение панели поиска можно поменять, например:
Если созданная панель поиска не устраивает, то:
Удалите панель поиска.
Создайте на форме необходимый элемент управления, например, текстовое поле, для ввода параметра поиска.
Пропишите по кнопке поиска команду:
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 – сортировка по возрастанию.
Агрегирование
Для применения к полям таблицы функций агрегирования и отображения результатов этих функций на форме, необходимо:
Открыть конструктор данных, например, выбрав в контекстном меню к БД в окне Источники данных команду Изменить набор данных в конструкторе:
Если таблица запросов (DataTable) отсутствует, то создать ее. В нашем примере это таблица All.
Через контекстное меню к таблице запросов выбрать команды Добавить, Запрос…
В следующем окне нажать кнопку Далее:
В следующем окне выбрать команду «Инструкция Select, возвращающая одиночное значение» и нажать кнопку Далее
В следующем окне нажать кнопку «Построитель запросов»
В следующем окне необходимо прописать запрос SQL, например:
Select функция(поле) AS имя_результата
From таблица
Замечание. Все поля должны быть выключены.
Для проверки созданного запроса можно нажать кнопку «Выполнить запрос». Если ошибки отсутствуют, то в появившемся окне проверки запроса следует нажать кнопку «ОК», а в окне Построитель запросов – кнопку «Далее».
В окне Выбор имени функции следует ввести имя для новой функции агрегирования и нажать кнопку «Далее».
Убедиться в правильности действий, «Готово»
Вызвать метод на форме, например:
label8.Text = this.allTableAdapter.Avg_sal().ToString();
Пример:
Замечания.
1) Если запрос должен возвращать больше одного значения, то на шаге пятом следует выбрать команду «Запрос Select, возвращающий строки»
2) Если необходимо посчитать функцию агрегирования для определенной совокупности строк, то следует усложнить запрос:
Select функция(поле) As название результата
From таблица
Where поле=@перем
При этом изменится вызов
label4.Text =this.Адаптер.Avg_sal(значение).ToString();