Файл: Лекция 18 Технология доступа к данным в среде visual studio 2010 Рекомендуемые источники.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.01.2024
Просмотров: 160
Скачиваний: 1
СОДЕРЖАНИЕ
Часть II РЕАЛИЗАЦИЯ И ЭКСПЛУАТАЦИЯ БАЗ ДАННЫХ Раздел V Программный интерфейс доступа к данным
Технология доступа к данным в среде VISUAL STUDIO 2010
Автор: Голощапов Алексей Леонидович
Тип обложки: обл - мягкий переплет (крепление скрепкой или клеем)
Этапы создания клиентского приложения
Создание интерфейса клиентского приложения в Visual Studio происходит в несколько этапов:
§1 Технологии доступа к данным и Объекты связи
ODBC предназначена для обеспечения возможности взаимосвязи между различными SQL-совместимыми БД.
В технологии OLE DB используется механизм провайдеров, под которыми понимают поставщиков данных.
Модель объекта не содержит таблиц, среды. Здесь основными объектами являются:
Этот интерфейс представляет собой набор функций для работы с базами данных
Существует три технологии используемых в объектах связи:
ADO является более старой технологией.
§2 Подключение проекта к файлу БД
В Visual Studio подключение проекта к файлу БД можно произвести двумя способами:
Настройка связи подключение вручную
В Visual Studio можно создавать объекты связи вручную и их настраивать.
Создание и настройка соответствующих объектов связи
1. Создание подключения начинается с создания объекта DataSet.
Создание объекта BindingSource
DataSource - указанный объект DataSet;
DataMember - указывает таблицу, запрос или фильтр, которые будут отображаться на форме.
Следующие свойства необязательны для настройки:
Filter - свойство для фильтрации данных, в нем записывается условие отбора для какого-то поля;
Allow New - позволяет добавлять новые записи.
Создание объекта TableAdaper и BindingNavigatior
3. После добавления DataSet и BindingSource автоматически будет добавлен объект TableAdapter.
Настройка вида панели навигации
Затем можно настроить внешний вид панели навигации при помощи следующих свойств:
AddNewItem - отображает кнопку для добавления новой записи;
DeleteItem - отображает кнопку для удаления текущей записи;
AddNextItem - отображает кнопку для добавления новой записи после текущей;
MoveFirstItem - отображает кнопку для перехода к первой записи;
MoveNextItem - отображает кнопку для перехода к следующей записи;
MovePreviousItem - отображает кнопку для перехода к предыдущей записи;
MoveLastItem - отображает кнопку для перехода к последней записи;
CountItem - отображает общее количество записей;
PositionItem - отображает номер текущей записи.
§2 Интерфейс информационных систем. Создание интерфейса пользователя
Интерфейс информационных систем
В системах построенных по технологии клиент-сервер существует два вида интерфейса:
Интерфейс, реализуемый при помощи клиентского приложения
Основными элементами клиентских приложений являются формы (окно программы) и отчёты.
Элементы управления на форме называется объектами.
Каждый объект обладает своим набором свойств, событий и методов.
В БД все объекты форм делятся на два класса:
Все формы в клиентском приложении делятся на три группы:
Замечание: Существует два вида дизайна форм:
§2.1 Создание интерфейса пользователя
"DataSources"'>Создание интерфейса при помощи окна "DataSources"
Создание объектов для отображения данных перетаскиванием состоит из двух шагов:
Подключение объектов к источнику данных при помощи окна свойств
Для этого на форму помещается объект, который будет подключаться к источнику данных.
§2.1.2 Стандартные объекты для отображения данных. Программное управление информационной системой
Стандартные объекты для отображения данных
Операция состоит из двух шагов:
Наиболее часто в БД используются следующие объекты для отображения информации:
DataGridView - объект, отображающий источник данных (таблицу, запрос или фильтр) в виде таблицы.
По своим свойствам он ничем не отличается от объекта TextBox.
Единственное дополнительное свойство у этого объекта это свойство Mask.
Замечание: Тип данных отображаемой информации должен совпадать с типом данных маски.
Программное управление информационной системой
Вместо метода AddNew можно использовать методы:
MoveNext (перейти к следующей);
MovePrevious (Перейти к предыдущей);
MoveLast (Перейти к последней);
<Поле1><Оператор1><Выражение1>
[AND|OR <Поле2><Оператор2><Выражение2>…]
<Поле1>, <Поле2> ... - поля на которые накладываются условия;
<Оператор1>, <Опрераторы2> - операторы сравнения, участвующие в условиях;
Filter_=_"ФИО_=_Петров"'>СтудентыBindingSource.Filter = "ФИО = 'Петров'"
Свойство Filter объекта BindingSource
СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'"
Создание сложных ленточных форм для работы с данными
Рассмотрим последнюю процедуру более подробно.
Она содержит следующие команды:
Me.Validate() - проверяет введенные в поля данные на соответствие типам данных полей;
Me.СтудентыBindingSource.EndEdit() - закрывает подключение с сервером;
Me.TableAdapterManager.UpdateAll(Me.StudentsDataSet) - обновляет данные на сервере.
Для создания текстовых полей ввода по маске на панели объектов используется кнопка
Теперь необходимо подключить созданные текстовые поля ввода по маске к соответствующим полям.
Затем перетащите поле на форму мышью, расположив, его справа от надписи "Курс".
В панели действий под опцией "Use data bound items" расположены следующие параметры:
Data Source (Источник данных) - определяет таблицу или запрос из которого заполняется список;
Display Member (Член отображения) - определяет поле значениями которого заполняется список;
Selected Value (Выбранное значение) - определяет связанное с выпадающим списком поле.
Для изменения параметров необходимо нажать кнопку внутри поля параметра.
Появится древовидная структура выбора источника данных.
В нашем случае зададим выше перечисленные параметры следующим образом:
Параметр "DataSource" как "Other Data Sources\Project Data Sources\StudentsDataSet\Специальности";
Параметр "DataMember" как "Наименование специальности";
Параметр "Value Member" как "Код специальности";
Параметр "Selected Value" как "СтудентыBindingSource\Код специальности".
§2.2 Создание интерфейса пользователя
Объект для отображения табличной информации DataGridView
Этот объект может быть создан как:
Меню действий объекта DataGridView
Также в меню действий возможны следующее действия с таблицей:
DataGridView.Sort(<Имя столбца>, <Порядок сортировки>)
где DataGridView - это имя объекта,
System.ComponentModel.ListSortDirection.Ascending - сортировка по возрастанию;
System.ComponentModel.ListSortDirection.Descending - сортировка по убыванию.
Доступ к отдельным ячейкам таблицы
DataGridView.Item(i,j).<Свойство>
DataGridView.Item(0,0).Value = "Привет"
DataGridView.Item(0,0).Style.ForeColor = Color.Red
§2.2.2 Создание табличных форм для отображения данных.
Фильтрация и сортировка данных, организация поиска информации в таблице
В появившемся списке объектов для отображения всей таблицы выберите "DataGridView"
Далее настроим свойства объектов.
1. Начнем с настройки свойств формы. Задайте свойства формы следующим образом:
FormBorderStyle (Стиль границы формы): Fixed3D;
MaximizeBox (Кнопка развертывания формы во весь экран): False;
MinimizeBox (Кнопка свертывания формы на панель задач): False;
Text (Текст надписи в заголовке формы): Таблица "Студенты" (Табличный вид).
2. Зададим свойства надписей (Label1, Label2, Label3 и Label4) как:
Font (Шрифт): Microsoft Sans Serif, размер 14;
ForeColor (Цвет текста): Темно синий;
TextAlign (Выравнивание текста): MiddleCenter.
3. У группирующей рамки зададим заголовок (Свойство Text) равным "Сортировка".
расположенной в верхнем правом углу таблицы. В меню действий выберите пункт "Edit columns…"
Список полей примет вид показанный на рисунке.
Для закрытия окна редактирования полей, и сохранения изменений нажмите кнопку "Ok".
§2.2.3 Создание табличных форм для отображения данных. Написание кода обработчиков событий объектов
Закончив настройку свойств объектов и перейдем к написанию кода обработчиков событий объектов.
Сортировка данных по выбранному полю
Обработчика события нажатия кнопки "Фильтровать"
СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'"
"<Имя поля><Оператор>'<Значение>'".
Реализация поиска информации в таблице
Далее настроим свойства объектов.
1. Начнем с настройки свойств формы. Задайте свойства формы следующим образом:
FormBorderStyle (Стиль границы формы): Fixed3D;
MaximizeBox (Кнопка развертывания формы во весь экран): False;
MinimizeBox (Кнопка свертывания формы на панель задач): False;
Text (Текст надписи в заголовке формы): Таблица "Студенты" (Табличный вид).
2. Зададим свойства надписей (Label1, Label2, Label3 и Label4) как:
AutoSize (Авторазмер): False;
Text (Текст надписи): "Таблица "Студенты" (Табличный вид)", "Поле для сортировки", "ФИО:" и "Критерий" (Соответственно для Label1, Label2, Label3 и Label4).
Font (Шрифт): Microsoft Sans Serif, размер 14;
ForeColor (Цвет текста): Темно синий;
TextAlign (Выравнивание текста): MiddleCenter.
Зададим надписи на кнопках как: "Сортировать", "Фильтровать", "Показать все", "Найти" и "Закрыть" (Соответственно для кнопок Button1, Button2, Button3, Button4 и Button5).Для того чтобы нельзя было произвести сортировку не выбрав поля изначально заблокируем кнопку "Сортировать" (Button1).
3. У группирующей рамки зададим заголовок (Свойство Text) равным "Сортировка".
4. У переключателей (Объекты RadioButton1 и RadioButton2) зададим надписи как "Сортировка по возрастанию" и "Сортировка по убыванию", а у переключателя "Сортировка по возрастанию" (RadioButton1) зададим свойство Checked (Включен) равное True (Истина).расположенной в верхнем правом углу таблицы. В меню действий выберите пункт "Edit columns…"
Заполним список (ListBox1) значениями, представленными на рисунке, а затем нажмем кнопку "Ok".
В окне "Edit Columns" из списка полей удалите поля "Код студента" и "Код специальности", выделив их и нажав кнопку "Remove" (Удалить).
Список полей примет вид показанный на рисунке.
Для закрытия окна редактирования полей, и сохранения изменений нажмите кнопку "Ok".
После перечисленных действий появится окно настройки свойств полей таблицы "Edit Columns"
Закроем окно действий выпадающего списка. На панели невидимых объектов появится дополнительный объект связи "СтудентыBindingSource1"
, предназначенный для заполнения выпадающего списка
Настроим заполнение выпадающего списка именами студентов из таблицы студенты. Отобразив меню действий выпадающего списка. Включим опцию "Use Data Bound Items". Установим параметр "Data Source" равным "Other Data Sources\Project Data Sources\StudentsDataSet\Студенты", а параметр "Display Member" равным "ФИО". Остальные параметры оставим без изменений.
После настройки всех вышеперечисленных свойств объектов новая форма примет вид:
§2.2.3 Создание табличных форм для отображения данных. Написание кода обработчиков событий объектов
Разблокировка кнопки
Закончив настройку свойств объектов и перейдем к написанию кода обработчиков событий объектов.
Работу с кодом начнем с написания кода для разблокирования кнопки "Сортировать", при выборе пункта списка (ListBox1). Для создания процедуры события дважды щелкните ЛКМ по списку. Появится процедура обработки события, происходящего при выборе пункта списка (ListBox1_SelectedIndexChanged). В процедуре наберите команду разблокировки кнопки "Сортировать" (Button1):Button1.Enabled = True
Сортировка данных по выбранному полю
Теперь перейдем к созданию кода сортирующего нашу таблицу в зависимости от выбранного поля и порядка сортировки при нажатии кнопки "Сортировать". Дважды щелкните ЛКМ по кнопке "Сортировать". Появится процедура "Button1_Click", выполняемая при щелчке ЛКМ по кнопке. В процедуре наберите код: Затем следует блок Select Case…End Select, присваивающий в переменную Col имя выбранного столбца таблицы в зависимости от номера выбранного пункта списка (ListBox1.SelectedIndex). Если выбран первый пункт списка, то в переменную Col записывается столбец DataGridViewTextBoxColumn2, если второй, то - DataGridViewTextBoxColumn3 и так далее. Хотелось бы отметить тот факт, что нумерация пунктов списка начинается с нуля, а нумерация столбцов с единицы. Первый столбец "ФИО" носит имя DataGridViewTextBoxColumn2, так как имя DataGridViewTextBoxColumn1 имеет столбец заголовков строк; Блок If…End If выполняет следующую операцию: если включен переключатель "Сортировка по возрастанию" (RadioButton1), то отсортировать таблицу по полю заданному в переменной Col по возрастанию (СтудентыDataGridView.Sort (Col, System.ComponentModel.ListSortDirection. Ascending)), иначе по убыванию (СтудентыDataGridView.Sort (Col, System. ComponentModel.ListSortDirection. Descending)).Рассмотрим код более подробно:
Обработчика события нажатия кнопки "Фильтровать"
Дважды щелкните по кнопке "Фильтровать" и в процедуре обработки события "Button2_Click" наберите код:
СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'"
Замечание: У объекта СтудентыBindingSource имеется текстовое свойство Filter которое определяет условие фильтрации. Условие фильтрации имеет синтаксис:
"<Имя поля><Оператор>'<Значение>'".
В нашем случае значение поля "ФИО" приравнивается к значению, выбранному в выпадающем списке (ComboBox1.Text)
Отмена фильтрации записей
Теперь перейдем к кнопке "Показать все", отменяющей фильтрацию записей. Дважды щелкните по вышеперечисленной кнопке. Появится процедура Button2_Click. В появившейся процедуре наберите команду СтудентыBindingSource.Filter = " "Заметим, что если присвоить свойству "Filter" значение пустой строки (""), то его действие будет отменено.
Реализация поиска информации в таблице
Данная процедура состоит из двух частей:
Первый блок For i=0…..Next i. перебирает все ячейки таблицы и устанавливает в них белый цвет фона и черный цвет текста. То есть, отменяет результаты предыдущего поиска;
Второй блок For i=0…..Next i. перебирает все ячейки таблицы и если они содержат текст, введенный в поле ввода (TextBox1), то устанавливает в них голубой цвет фона и синий цвет текста, чем выделяет искомые ячейки.Дважды щелкните по кнопке "Найти". В появившейся процедуре обработки нажатия кнопки "Button4_Click" наберите следующий код:
Кнопка "Закрыть"
Наконец рассмотрим код для кнопки "Закрыть". Дважды щелкните ЛКМ по этой кнопке и в появившейся процедуре "Button5_Click" наберите команду "Me.Close()", закрывающую выше рассматриваемую форму В заключение создадим кнопку на ленточной форме, отображающей таблицу "Студенты", для отображения соответствующей табличной формы. Откройте ленточную форму для таблицы "Студенты" (Form4) и поместите на нее новую кнопку, как это показано на рисунке. Задайте надпись у новой кнопки (свойство Text), как "Таблица".Button8
Подключим к кнопке "Таблица" созданную ранее табличную форму (Form6). Для этого дважды щелкните ЛКМ по кнопке "Таблица" и в появившейся процедуре "Button8_Click" наберем команду "Form6.Show".
Проверим работоспособность созданной табличной формы. Запустим проект и на главной кнопочной форме нажмем кнопку "Таблица "Студенты"
". На появившейся ленточной форме, отображающей таблицу "Студенты" нажмем кнопку "Таблица".
Появится новая табличная форма
Отметим тот факт, что после проведения всех вышеописанных действий панель обозревателя проекта (Solution Explorer) примет вид