Файл: Лекция 18 Технология доступа к данным в среде visual studio 2010 Рекомендуемые источники.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.01.2024
Просмотров: 163
Скачиваний: 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 & "'"
"<Имя поля><Оператор>'<Значение>'".
Реализация поиска информации в таблице
Подключение объектов к источнику данных при помощи окна свойств
Visual Studio позволяет подключать источники данных к объектам без использования перетаскивания, то есть вручную, с использованием панели свойств.
Для этого на форму помещается объект, который будет подключаться к источнику данных.
Его выделяют, затем на панели свойств разворачивается группа свойств "DataBindings" она содержит два свойства:
- Text - определяет таблицу, запрос или фильтр, из которого выводятся данные в объект.
- Tag - определяет поле, выбранного в свойстве Text источника данных, которое отображается в объекте.
Источники данных
Открыть панель "Источники данных" (Data Sources) можно, щелкнув по ее вкладке в правой части окна среды разработки
На панели "Источники данных" отобразите поля необходимой таблицы щелкнув по значку , расположенному слева от имени таблицы.
Замечание: Под полями таблицы "Студенты" в виде подтаблицы располагается таблица "Оценки" . Подтаблица показывает, что таблица "Студенты" является вторичной по отношению к таблице специальности.
Замечание: При выделении, какого либо поля таблицы, оно будет отображаться в виде выпадающего списка, позволяющего выбирать объект, отображающий содержимое выделенного поля
Замечание: Мы не должны помещать поле "Код специальности" на форму, так как данное поле является первичным полем связи и заполняется автоматически. Конечный пользователь не должен видеть такие поля. Замечание: После перетаскивания полей с панели "Источники данных" на форму в верхней части формы должна появится навигационная панель, а в нижней части рабочей области среды разработки появится пять невидимых объектов. Эти объекты предназначены для связи нашей формы с таблицей "Студенты", расположенной на сервере.
Пример простой ленточной формы для работы с данными
Обратите внимание на объекты, отображающие поля "Дата рождения",
"Дата поступления" и "Очная форма обучения".
§2.1.2 Стандартные объекты для отображения данных. Программное управление информационной системой
Стандартные объекты для отображения данных
Способ создания объектов для отображения данных описанный ранее, позволяет создавать только ограниченный набор объектов. Однако, Visual Studio позволяет подключать источники данных практически к любому объекту, который может быть создан на форме. Это можно сделать при помощи перетаскивания поля источника данных из окна "Data Sources" на объект на форме.Операция состоит из двух шагов:
- При помощи панели объектов (слева) на форме создается какой-то объект. Объекты несвязанные с источником данных называют несвязанными объектами.
- Вновь созданный объект связывается с источником данных. Для этого на объект нужно перетащить поле таблицы запроса или фильтра из окна "DataSources".
Замечание: В случае подключения объекта к источнику данных, способом, описанным выше, подпись к объекту не создаётся автоматически и её надо создавать вручную с помощью объекта Label.
Наиболее часто в БД используются следующие объекты для отображения информации:
- Текстовое поле (TextBox)
- Надпись (Label)
- Надпись со ссылкой (LinkLabel)
- Календарь (DataPicker)
- Переключатель (CheckBox)
- Таблица (DataGridView)
- Список (ListBox)
- Выпадающий список (ComboBox)
- Текстовое поле с маской ввода (MaskedTextBox)
Label - полностью аналогичен объекту TextBox, но не позволяет изменить данные. Этот объект используется для отображения заблокированных неизменяемых полей.
ListBox- список отображающий значения полей и позволяющий выбирать значения полей из списка. Более того, пункты списка можно задавать, используя другой источник данных.
ComboBox - объект подобный объекту ListBox, однако информация отображается не в списке, а выпадающем списке.
- Установить галочку "Use Data Bound Items",
- В выпадающем списке "DataSource" выбрать пункт "Other Data Source" и там выбрать нужную таблицу.
- В выпадающем списке "DisplayMember" и указываем поле, которое отображается в списке.
- В выпадающем списке "ValueMember" указываем поле, которое подставляем при выборе пункта списка.
- В выпадающем списке "SelectedValue" указываем поле, куда подставляется выбранное в "ValueMember" значение.
LinkLabel - специальный объект для отображения ссылок на адреса в Интернете. Его используют для отображения текстовых полей, если в них хранятся адреса Интернета или какой-то компьютерной сети.
DataGridView - объект, отображающий источник данных (таблицу, запрос или фильтр) в виде таблицы.
DataPicker - специальный объект, предназначенный для отображения полей типа данных "Дата/Время" в виде календаря.
Этот объект может быть создан только при помощи панели объектов и его подключение осуществляется либо перетаскиванием на него поля из окна "Data Sources", либо заданием его свойств вручную.
По своим свойствам он ничем не отличается от объекта TextBox.
Единственное дополнительное свойство у этого объекта это свойство Mask.
Для этого нужно щелкнуть по кнопке действий объекта в верхнем правом углу объекта. Затем в списке действий выбрать пункт "Edit Mask". В появившемся окне выбрать шаблон ввода, то есть маску (Mask).Замечание: Тип данных отображаемой информации должен совпадать с типом данных маски.
Программное управление информационной системой
В Visual Studio добавлять, удалять записи и перемещаться по ним можно как используя объект Navigator, так и используя обычные кнопки.
Пример: Создадим кнопоки для управления записями. В Visual Studio все операции с записями осуществляются с использованием объекта "BindingSource".
Для добавления новой записи из таблицы "Студенты" используется команда вида СтудентыBindingSource.AddNew
Вместо метода AddNew можно использовать методы:
MoveNext (перейти к следующей);
MoveFirst (Перейти к первой);
MovePrevious (Перейти к предыдущей);
MoveLast (Перейти к последней);
Delete (Удалить запись).
<Поле1><Оператор1><Выражение1>
[AND|OR <Поле2><Оператор2><Выражение2>…]
Здесь:
<Поле1>, <Поле2> ... - поля на которые накладываются условия;
<Оператор1>, <Опрераторы2> - операторы сравнения, участвующие в условиях;
<Выражение1>, <Выражение2> - выражения с которыми сравниваются поля. Под выражениями понимаются, константы, переменные, формулы, функции и свойства объектов
Пример: Из таблицы "Студенты" необходимо отобразить студента, у которого значение поля ФИО равно "Петров".
Filter_=_"ФИО_=_Петров"'>СтудентыBindingSource.Filter = "ФИО = 'Петров'"
Свойство Filter объекта BindingSource
Свойство Filter объекта BindingSource
Обычно при формировании запроса при помощи свойства Filter задания условий отбора используют либо списки ListBox, либо выпадающие списки ComboBox.
Замечание: Если мы используем ComboBox для создания динамического фильтра, то в меню действий параметры "Value Member" и "Selected Value" настраивать не надо.
Пример: Имеется таблица "Студенты", которая отображается на форме в DataGridView. Необходимо на форме поместить ComboBox с фамилиями студентов. При выборе ФИО и нажатием на кнопку отобразить данные только по выбранному студенту. В этом случае в меню действий ComboBox в параметре "Data Source" указываем "Other Data Source/Студенты". Затем в "Display Member" выбираем ФИО. В коде кнопки прописываем следующую команду:СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'"
После нажатия кнопки в DataGridView отображаются данные по студенту, выбранному в выпадающем списке ComboBox1.
Создание сложных ленточных форм для работы с данными
Предыдущая
Следующая
Сохранить
Удалить
Добавить
Последняя
Первая
для перехода к первой записи
для перехода к предыдущей записи
для добавления новой записи
для перехода к последней записи
для перехода к следующей записи
для удаления текущей записи
для сохранения изменений
С#
Coхранение изменений
Рассмотрим последнюю процедуру более подробно.
Она содержит следующие команды:
Me.Validate() - проверяет введенные в поля данные на соответствие типам данных полей;
Me.СтудентыBindingSource.EndEdit() - закрывает подключение с сервером;
Me.TableAdapterManager.UpdateAll(Me.StudentsDataSet) - обновляет данные на сервере.
Для отображения полей "Телефон", "Паспортные данные" и "Номер зачетки" лучше использовать текстовые поля ввода по маске (MaskedTextBox). Объект текстовое поле ввода по маске отсутствует в выпадающем списке объектов для отображения полей в окне "Источники данных", поэтому будем создавать данные объекты при помощи панели объектов (Toolbox), а затем подключать их к соответствующим полям вручную.Для создания текстовых полей ввода по маске на панели объектов используется кнопка
Теперь
Настроим маски ввода. Начнем с объекта, отображающего номер зачетки.
На форме выделите соответствующее полю "Номер зачетки" текстовое поле ввода по маске.
Для задания маски в меню действий с объектом выберите пункт "Set Mask…" (Установить маску…)
Замечание: Для отображения меню действий в верхнем правом углу объекта необходимо нажать кнопку
После выбора пункта "Set Mask…" на экране появится окно задания маски "Input Mask" (Введите маску)
В окне "Input Mask" выберите маску "Numeric (5-digits)" (Числовое (5-цифр)) и нажмите кнопку "Ok"
маска для текстового поля ввода по маске отображающего поле "Паспортные данные"
маска для текстового поля ввода по маске отображающего поле "Телефон"