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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

МИНИСТЕРСТВА ФИНАНСОВ РОССИЙСКОЙ ФЕДЕРАЦИИ»

Факультет прикладной информатики и математики

Кафедра «Прикладная информатика»

Кондрашов Ю.Н.

Организация доступа из приложений к базе данных SQL- сервер

Методические указания по выполнению курсовой работы по дисциплине Базы данных

Для студентов направления 080700.62 Бизнес-информатика

Москва 2011

  • Доступ к данным.

Язык программирования Visual Basic 2008 входит в состав пакета Microsoft Visual Studio 2008. Он позволяет создавать приложения для ОС Windows 2000, XP, VISTA и ОС Windows Mobile, Windows Pocket PC.

Microsoft Visual Basic 2008 обладает следующими особенностями:

  1. Для работы программ, написанных на этом языке, необходимо чтобы была установлена библиотека Microsoft Net. Frame Work 2.0.

  2. Возможность создавать различные части проекта на различных языках программирования, входящих в Visual Studio.

  3. Возможность использования новых визуальных эффектов доступных Windows XP.

  4. Возможность конвертации проектов Visual Basic более ранних версий.

  5. Большая ориентация на сетевые технологии.

  6. Более упрощенная работа с БД. Ориентация на язык форматирования XML. В состав Visual Studio входит SQL Server Express - урезанная клиентская версия SQL Server 2008.

  7. Автоматическое подключение всех доступных компонентов.

Visual Basic 2008 основывается на ядре Visual Basic 6.0, который входит в состав Visual Studio 6.0. И был создан в 1998. После создания Visual Studio 6.0, он получил большое распространение в мире. В 2003г была создана новая версия Visual Basic Net. Его главным отличием была большая ориентация на компоненты сети, использования библиотеки Microsoft Frame Work 1.0. улучшились графические спецэффекты программы. В 2005 году на основе Visual Basic Net создается Visual Basic 2005, а в 2008 году создаётся улучшенная версия языка Visual Basic 2008.

Создание интерфейса клиентского приложения в Visual Basic происходит несколько этапов:

  1. Создаётся проект;

  2. В проекте создаются объекты связи, которые подключаются к файлу данных;

  3. Создаются формы;

  4. Создаются отчёты.

Создание нового проекта рассматривается в лабораторной работе и литературе посвящённой Visual Basic. Остановимся более подробно на объектах связи.

Объекты связи

Объекты связи - это объекты проекта, осуществляющие обмен информацией между интерфейсом БД и файлом данных.

Объекты связи всегда находятся на клиентской машине. Они осуществляют доступ к файлам данных, передавая информацию в интерфейс БД, и содержат внутри себя запросы, выполнения на стороне клиента.

Замечание: Объекты связи также могут ограничивать доступ к информации и осуществлять защиту информации, хотя для защиты информации и ограничения доступа лучше использовать сам сервер.

Существует три технологии используемых в объектах связи:

  • технология ADO;

  • технология RDC;

  • технология ADO.Net.

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

Согласно технологии RDC файлы данных рассматриваются в качестве устройств, т.е. для работ с БД нам необходим драйвер. Объект связи, работающий по технологии RDC, при работе с файлом данных сначала обращается к драйверу БД, который в свою очередь обращается к файлу данных.

Технология ADO.Net является смесью технологий ADO и RDC. Объекты связи работающие по этой технологии работают аналогично объектам работающим по технологии ADO, однако, объекты связи входят в состав пакета Microsoft Net Framework, и автоматически обновляются вместе с этим пакетом.

Замечание: можно создавать динамические запросы и запросы, выполненные на стороне сервера только в технологии RDC и ADO.Net.

Мастер подключений

В Visual Basic 2008 по сравнению с Visual Basic 6.0 подключение проекта к файлу БД можно произвести двумя способами: при помощи мастера подключений и вручную, создавая объекты связи и настраивая их свойства. Начнем рассмотрение создания подключения с помощью мастера.

Как говорилось выше, объекты связи обеспечивают доступ к файлам данных. Создание подключения состоит из создания следующих объектов:

  • DataSet (Набор данных) - обеспечивает подключение формы к конкретной БД на сервере (в нашем случае это БД Students);

  • BindingSource (Источник связи) - обеспечивает подключение к конкретной таблице (в нашем случае к таблице специальности), а также позволяет управлять таблицей;

  • TableAdapter (Адаптер таблиц) - обеспечивает передачу данных с формы в таблицу и наоборот.

  • TableAdapterManager (Менеджер адаптера таблиц) - управляет работой объекта TableAdapter;

  • BindingNavigator (Панель управления таблицей) - голубая панель с кнопками управления таблицей, расположенная в верхней части формы.

Можно создать и подключить все эти объекты вручную, но удобнее воспользоваться мастером. Работа с мастером подключений состоит из нескольких этапов:

  1. Запуск мастера;

  2. Выбор типа источника данных: БД, сетевой источник или объект;

  3. Настройка строки подключения "Connection String". Настройка заключается в выборе вида БД (либо Access, либо SQL Server), а также в выборе сервера и файла данных. В случае необходимости можно задать логин и пароль;

  4. Сохранение строки подключения. При ее сохранении можно менять параметры подключения без использования Visual Basic. Но при сохранении строки подключения в файл велика вероятность несанкционированного подключения к БД;

  5. Выбор таблиц или запросов включённых в соединение. Также можно выбрать их отдельные поля;

  6. Завершение работы мастера подключений.

Более подробные инструкции по работе с мастером подключений можно найти в лабораторной работе.

Замечание: После окончания работы мастера подключений. В обозревателе в "Solution Explorer" появится дополнительный файл набора данных с расширением xsd. Этот файл содержит в себе схему данных из источника данных, а также позволяет редактировать источник данных (при открытии этого файла появляется окно похожее на конструктор запросов в Access или SQL Server), в этом окне также можно редактировать поля таблиц.

Замечание: В одном проекте может быть несколько наборов данных, то есть можно запускать мастер подключений сколько угодно раз. Новые наборы данных добавляются на вкладку "Data Sources" и появляется новые данные с расширением xsd.

Настройка связи подключение вручную

В Visual Basic 2008, как и в Visual Basic 6.0 мы можем создавать объекты связи вручную и их настраивать. Для связи Visual Basic 2008 использует три объекта связи, причем они работают все вместе, плюс к этому были существует объект BindingNavigatior (Панель навигации) - эта панель обеспечивает полное управление источником данных (добавление, удаление, перемещение по записям).

Рассмотрим создание и настройки соответствующих объектов связи в порядке очередности:

  1. Создание подключения начинается с создания объекта DataSet. Объект DataSet не может сам подключится к источнику данных перед его созданием необходимо настроить "Data Sources" (оконное меню Data \ Add Data Sources). После создания объекта DataSet появляется окно "Add DataSet". В нем необходимо в выпадающем списке "Typed DatSet" выбрать источник данных из "Data Sources". Фактически "DataSet" аналогичен Connection из Visual Basic 6.0. После выбора источника данных в списке "Typed DataSet" появится строка Windows Application <имя источника>. После этого в окне можно нажать кнопку "Ok". Имя источника данных будет записана в свойство DataSetName объекта DataSet.

  2. После создания объекта DataSet создается объект BindingSource. Этот объект играет ту же роль, что и Command в Visual Basic 6.0, он позволяет подключится к таблицам, запросам и фильтрам из файла данных. После его создания необходимо настроить следующие свойства:

    • DataSource - указанный объект DataSet;

    • DataMember - указывает таблицу, запрос или фильтр, которые будут отображаться на форме.

Следующие свойства необязательны для настройки:

  • Filter - свойство для фильтрации данных, в нем записывается условие отбора для какого-то поля;

  • Sort - сортировка информации

  • Allow New - позволяет добавлять новые записи.

  • После добавления DataSet и BindingSource автоматически будет добавлен объект TableAdaper. После чего уже можно добавлять объекты для отображения данных, однако, при этом нельзя будет управлять информацией.

  • Для управления источником данных создаётся объект BindingNavigatior. Затем его необходимо подключить к объекту BindingSource. Для этого в свойстве BindingSource объекта BindingNavigatior необходимо указать созданный ранее объект BindingSource.

    Затем можно настроить внешний вид панели навигации при помощи следующих свойств:

    • AddNewItem - отображает кнопку для добавления новой записи;

    • DeleteItem - отображает кнопку для удаления текущей записи;

    • AddNextItem - отображает кнопку для добавления новой записи после текущей;

    • MoveFirstItem - отображает кнопку для перехода к первой записи;

    • MoveNextItem - отображает кнопку для перехода к следующей записи;

    • MovePreviousItem - отображает кнопку для перехода к предыдущей записи;

    • MoveLastItem - отображает кнопку для перехода к последней записи;

    • CountItem - отображает общее количество записей;

    • Position Item - отображает номер текущей записи.

    Рассмотрим создание пользовательского интерфейса нашей БД в "Microsoft Visual Studio 2008".

    Прежде чем создавать новый проект в "Microsoft Visual Studio 2008", необходимо запустить "SQL Server Browser" (Обозреватель SQL серверов) сервис, обеспечивающий доступ сторонним приложениям к "Microsoft SQL Server 2008". Для запуска данного сервиса необходимо запустить утилиту "SQL Server Configuration Manager" (Менеджер настроек SQL сервера), входящую в состав "Microsoft SQL Server 2008". Для запуска данной утилиты в меню "Пуск" выберите пункт "Программы/Microsoft SQL Server 2008/Configuration Tools/ SQL Server Configuration Manager" как это представлено на рис. 16.1.

    Рис. 1. 

    Появится окно менеджера настроек SQL сервера имеющее следующий вид (рис. 2):

    Рис. 2. 

    В правой части окна менеджера настроек SQL сервера, в списке сервисов "Microsoft SQL Server 2008" выделите сервис "SQL Server Bowser", затем на панели инструментов нажмите кнопку "Start Service" (Запустить сервис)

    (рис. 2). После запуска вышеуказанного сервиса окно менеджера настроек SQL сервера можно закрыть.

    Теперь перейдем непосредственно к созданию пользовательского интерфейса нашей БД "Students" в "Microsoft Visual Studio 2008". Для начала необходимо создать новый проект. Для этого запустите "Microsoft Visual Studio 2008", выбрав в меню "Пуск" пункт "Программы/ Microsoft Visual Studio 2008/ Microsoft Visual Studio 2008" (рис. 3).

    Рис. 3. 

    Появится окно со стартовой страницей "Microsoft Visual Studio 2008 (Start Page)" (рис. 4).

    Рис. 4. 

    Для создания нового проекта на стартовой странице в области "Recent Projects" (Недавние проекты) необходимо щелкнуть ЛКМ по ссылке "Create: Project…" (Создать: проект…) (рис. 4). Появится окно выбора типа создаваемого проекта, и используемого языка программирования "New Project" (Новый проект) (рис. 5).

    Рис. 5. 

    В нашем случае на дереве типов проекта "Project types:" (Типы проектов) выберите "Visual Basic\Windows", а в качестве шаблона проекта (Область Templates:) выберите "Windows Forms Application" (Приложение Windows). В качестве имени проекта (Поле ввода Name:) задайте "StudentsDB" и нажмите кнопку "Ok" (рис. 5).

    Появится стандартное окно разработки языка "Microsoft Visual Basic 2008" (рис. 6).

    Рис. 6. 

    Окно разработки языка "Microsoft Visual Basic 2008" имеет следующую структуру (рис. 6):

    1. Оконное меню - содержит полный набор команд для управления средой разработки;

    2. Панель инструментов - содержит кнопки с наиболее часто используемыми командами среды разработки;

    3. Панель объектов (Toolbox) - содержит кнопки классов для создания различных объектов (Элементов управления);

    4. Обозреватель проекта/Источники данных (Solution Explorer/Data Sources) - в зависимости от активизированной в нижней части данной панели вкладки, отображает обозреватель проекта или источники данных, подключенные к проекту. Обозреватель проекта (Solution Explorer) отображает все файлы, входящие в проект и позволяет переключаться между ними. Источники данных это базы данных, службы или объекты из которых поступают данные в проект;

    5. Панель свойств (Properties) - отображает и позволяет изменять свойства выбранного объекта;

    6. Рабочая область - в зависимости от выбранной вкладки, расположенной в верхней части области, отображает область дизайна формы, код формы или стартовую страницу.

    После создания нового проекта необходимо подключить к проекту созданную ранее в "Microsoft SQL Server 2008" БД "Students". Для подключения БД к проекту в оконном меню среды разработки выберите пункт "Data\Add New Data Source…". Появится окно мастера подключения к новому источнику данных "Data Source Configuration Wizard" (рис. 7).

    Рис. 7. 

    В данном окне можно выбрать один из трех видов источников данных (Choose a Data Source Type):

    • БД (Database);

    • Служба (Service);

    • Объект (Object).

    Так как мы подключаем наш проект к БД "Students" то выбираем вариант БД (Database) и нажимаем кнопку "Next" (Далее). Появится окно выбора подключения к БД (Choose Your Data Connection) (рис. 8).

    Рис. 8. 

    В окне выбора подключения к БД, для создания нового подключения нажмите кнопку "New Connection…". Появится окно добавления нового соединения "Add Connection" (рис. 9).

    Рис. 9. 

    В окне "Add Connection" в выпадающем списке "Server Name" (Имя сервера) выберите имя сервера заданное при установке SQL сервера. В качестве логина и пароля для входа на сервер (Log on to the server) выберите "Use Windows Authentication" (Использовать логин и пароль учетной записи Windows). В качестве БД для подключения (Connect to a database) из выпадающего списка "Select or enter a database name:" (Выберите или введите имя БД) выберите БД "Students" (рис. 9).

    Для проверки работоспособности создаваемого соединения нажмите кнопку "Test Connection". Появится сообщение "Test connection succeeded" (рис. 10), говорящее о том, что соединение работоспособно.

    Рис. 10. 

    Закройте окно, представленное на рис. 10, а затем в окне добавления нового соединения "Add Connection" (рис. 9) нажмите кнопку "Ok". Произойдет возвращение к окну выбора подключения к БД (Choose Your Data Connection). Просмотрите созданную строку подключения "Connection string", щелкнув по знаку "+" в нижней части окна (рис. 11).

    Рис. 11. 

    В окне выбора подключения к БД (Choose Your Data Connection) нажмите кнопку "Next" (Далее). Появится окно с запросом о сохранении строки подключения "Save the Connection String to the Application Configuration File" (Сохранить строку подключения в файл настроек приложения) (рис. 12).

    Рис. 12. 

    Для сохранения строки подключения включите опцию "Yes, save the connection as:" (Да, сохранить подключение как:) и нажмите кнопку "Next".

    Появится окно выбора объектов подключаемой БД (Choose Your Database Objects) (рис. 13).

    Рис. 16.13. 

    Выберите все объекты как это показано на рис. 13 и нажмите кнопку "Finish" (Готово). Подключение завершено.

    Для просмотра источника данных щелкните по вкладке "Data Sources" в окне разработки языка "Microsoft Visual Basic 2008" (рис. 6 пункт 4). Вкладка "Data Sources" имеет вид (рис. 14):

    Рис. 16.14. 

    На этом мы заканчиваем рассмотрение подключения БД к новому проекту. Закройте окно среды разработки. Появится окно сохранения нового проекта "Save Project" (рис. 16.15).

    Рис. 16.15. 

    В данном окне в поле ввода "Name:" (Имя) задайте имя проекта "StudentsDB". В поле "Location:" (Расположение:) задайте папку, где будет сохранен новый проект, нажав кнопку "Browse…" (Выбрать). После определения имени проекта и его местоположения нажмите кнопку "Save" (Сохранить).

    Интерфейс информационных систем

    В системах построенных по технологии клиент-сервер существует два вида интерфейса:

    • Интерфейс, реализуемый при помощи клиентского приложения;

    • Web -интерфейс.

    Интерфейс, реализуемый при помощи клиентского приложения - это компьютерная программа, устанавливаемая на клиентские компьютеры, предназначенная для работы с файлами данных через сеть. Основными элементами клиентских приложений являются формы (окно программы) и отчёты.

    Элементы управления на форме называется объектами. Каждый объект обладает своим набором свойств, событий и методов.

    • Свойства объекта - это его характеристики (высота, ширина и т.д.);

    • События объекта - это события операционных систем или события инициируемые пользователем, на которые может реагировать объект (нажатие кнопки);

    • Методы объекта - действия, которые можно производить с объектом в ходе выполнения программ.

    В БД все объекты форм делятся на два класса:

    • Объекты управления - объекты, осуществляющие управление БД (Например: Кнопка или Выпадающий список);

    • Объекты для отображения информации - элементы, отображающие содержимое таблиц, запросов или фильтров, позволяющие добавлять изменять и удалять информацию, и проводить ее анализ.

    Все формы в клиентском приложении делятся на три группы:

    1. Формы для работы с данными - формы, содержащие как объекты управления, так и объекты просмотра данных. Такие формы предназначены для отображения, изменения, удаления и анализа данных;

    2. Кнопочные формы - формы, содержащие только объекты управления, предназначаются для открытия всех других форм.

    Замечание: Кнопочная форма, которая появляется первой после запуска программы, называется, главной кнопочной формой.

    1. Информационные и служебные формы - формы, содержащие только элементы управления, предназначены для отображения служебной информации (справки), несвязанной с таблицами, запросами и фильтрами, либо для выполнения служебных операций не связанных с данными (Например: форма с калькулятором)

    Замечание: Существует два вида дизайна форм:

    1. Ленточные формы - формы, выводящие информацию по одной записи;

    2. Табличные формы - формы выводящие информацию в виде таблицы.

    Замечание: Объекты связи используются только в клиентском интерфейсе. В web-интерфейса функции объекта связи выполняет сервер.

    Основой web-интерфейса являются страницы (файл с расширенным htm или html). Работа со страницами осуществляется с помощью программы - браузера. Изначально страницы находятся на сервере, пользователь сначала загружает их на свой компьютер с сервера, а затем с помощью страниц пользователь работает с файлом данных.

    Замечание: В web- интерфейсе отсутствуют отчёты, их роль выполняют сами страницы.

    Создание интерфейса пользователя Создание интерфейса при помощи окна "Data Sources"

    Visual Basic 2008 позволяет создавать не сложный интерфейс БД, без помощи панели объектов и окна свойств, лишь использую окно "Data Sources". В окне "Data Sources" после подключения источника данных отображается все таблицы, запросы, фильтры данных и их поля. В Visual Basic 2008 как и в Visual Basic 6.0 можно перетаскивать источники данных, соответственно таблицы, запросы, фильтры прямо из окна "Data Sources" на форму (в Visual Basic 6.0 окно "Data Sources" заменено на окно "Data Environment"). Главное отличие Visual Basic 2008 является то, что при перетаскивании можно выбирать для каждого поля источника данных объект, который будет отображать его содержимое.

    Замечание: Таким способом можно создавать только определённые объекты для отображения данных поля, и набор этих объектов зависит от типа данных поля.

    Создание объектов для отображения данных перетаскиванием состоит из двух шагов:

    • Для каждого поля таблицы, запроса, или фильтра выбирается объект, который будет отображать его содержимое. Для этого необходимо щелкнуть мышью по полю в окне "Data Sources", рядом с именем поля появится кнопка, со стрелкой, щелкнув мышью стрелке, отобразится выпадающее меню с объектами, которые могут отображать информацию, содержащуюся в поле. Для полей стандартными объектами являются: TextBox, ComboBox, Label, LinkLabel, ListBox, LinkLabel. Для полей типа данных Дата Время (DateTime) возможно использования объекта DataTimePicker. Для полей логических типов данных возможно использование объекта CheckBox. Для отображения таблиц, запросов или фильтров целиком возможно два варианта отображения:

      • При помощи объекта DataGridView - информация из таблицы, запроса или фильтра отображается в виде таблицы;

      • DetalledView - отображение всех полей источника данных в TextBox по отдельности

    Замечание: В выпадающем меню с вариантами выбора объектов имеется пункт "Customize" (Настройки), который позволяет выбрать дополнительные допустимые объекты для отображения информации.

    • после выбора объектов для отображения необходимо их поместить на форму, перетаскивая мышью с панели "Data Sources" в нужное место на форме.

    Замечание: При помещении первого объекта на форму на ней автоматически создаются объекты для связей с файлом данных и объекты по навигациям по источникам данных (DataSet, BindingSource, TableAdapter, BindingNavigator).

    Замечание: По умолчанию панель навигации располагается в верхней части формы. Эту панель можно прикрепить около различных краев формы. Для этого необходимо воспользоваться меню действий объектов. Это меню схоже с окном "Property Pages" из Visual Basic 6.0, но кроме основных свойств объектов оно содержит и действия, которые можно производить с объектами. Чтобы вызвать это меню необходимо выделить объект. В его правом верхнем углу появится (квадратик со стрелочкой) при нажатии этой кнопки появляется выпадающее меню с настройками и действия с объектом. Например, чтобы поменять место положение навигации панели надо в этом меню выбрать настройку Docking.

    Замечание: При перетаскивании на форму полей источников данных автоматически создаются подписи к ним (Label).

    Замечание: После перетаскивания с созданным объектом можно работать как и с обычным объектом Visual Basic.

    Подключение объектов к источнику данных при помощи окна свойств

    Visual Basic 2008 позволяет подключать источники данных к объектам без использования перетаскивания, то есть вручную, с использованием панели свойств, как в Visual Basic 6.0. Для этого на форму помещается объект, который будет подключаться к источнику данных. Его выделяют, затем на панели свойств разворачивается группа свойств "DataBindings" она содержит два свойства:

    • Text - определяет таблицу, запрос или фильтр, из которого выводятся данные в объект;

    • Tag - определяет поле, выбранного в свойстве Text источника данных, которое отображается в объекте.

    Перейдем теперь к созданию пользовательского интерфейса. Его создание начнем с создания главной кнопочной формы. Запустите "Microsoft Visual Studio 2008" и откройте созданный ранее проект "StudentsDB", щелкнув по его значку в области "Recent Projects" стартовой страницы "Start Page" (рис. 1).

    Рис. 1. 

    После появления стандартного окна среды разработки в рабочей области на форму поместите надпись (Label) и четыре кнопки (Button) как показано на рис. 2.

    Рис.2. 

    Замечание: Для создания надписи на панели объектов необходимо нажать кнопку

    а затем нарисовать прямоугольник мышью на форме, удерживая ЛКМ. Кнопки создаются таким же образом, только на панели объектов нажмите кнопку

    После создания объектов перейдем к настройке их свойств. Начнем с настройки свойств формы. Выделите форму, щелкнув ЛКМ в пустом месте формы. На панели свойств задайте свойства формы как представлено ниже:

    • FormBorderStyle (Стиль границы формы): Fixed3D;

    • MaximizeBox (Кнопка развертывания формы во весь экран): False;

    • MinimizeBox (Кнопка свертывания формы на панель задач): False;

    • Text (Текст надписи в заголовке формы): База данных "Студент".

    На форме выделите надпись, щелкнув по ней ЛКМ и на панели свойств, задайте свойства надписи следующим образом:

    • AutoSize (Авторазмер): False;

    • Font (Шрифт): Microsoft Sans Serif, размер 14;

    • ForeColor (Цвет текста): Темно синий;

    • Text (Текст надписи): База данных "Студент";

    • TextAlign (Выравнивание текста): MiddleCenter.

    У кнопок задайте надписи (свойство "Text") как показано на рис.3.

    Рис. 3. 

    После настройки свойств вышеперечисленных объектов форма примет вид представленный на рис. 3.

    Теперь перейдем к созданию простых ленточных форм для работы с данными. Для начала создадим ленточную форму, отображающую таблицу "Специальности". Добавим в проект новую пустую форму. Для этого в оконном меню выберите пункт "Project/Add Windows Form". Появится окно "Add New Item - StudentsDB" (Добавить новый компонент) (рис. 4).

    Рис. 4. 

    В данном окне в разделе "Categories:" (Категории) выберите "Windows Forms" (Формы Windows), затем в разделе "Templates:" (Шаблоны) выберите "Windows Form" (Форма Windows) и нажмите кнопку "Add" (Добавить). Новая пустая форма появится в рабочей области среды разработки.

    В верхней части новой формы создайте надпись (Label), как это показано на рис. 5.

    Рис. 5. 

    Перейдем к настройке свойств формы и надписи. Выделите форму, щелкнув ЛКМ в пустом месте формы. На панели свойств задайте свойства формы следующим образом:

    • FormBorderStyle (Стиль границы формы): Fixed3D;

    • MaximizeBox (Кнопка развертывания формы во весь экран): False;

    • MinimizeBox (Кнопка свертывания формы на панель задач): False;

    • Text (Текст надписи в заголовке формы): Таблица "Специальности".

    На форме выделите надпись, щелкнув по ней ЛКМ и на панели свойств, задайте свойства надписи как показано ниже:

    • AutoSize (Авторазмер): False;

    • Font (Шрифт): Microsoft Sans Serif, размер 14;

    • ForeColor (Цвет текста): Темно синий;

    • Text (Текст надписи): Таблица "Специальности";

    • TextAlign (Выравнивание текста): MiddleCenter.

    После настройки всех вышеперечисленных свойств форма будет выглядеть следующим образом (рис. 6):

    Рис. 6. 

    Теперь поместим на форму поля таблицы "Специальности". Сначала откройте панель "Источники данных" (Data Sources), щелкнув по ее вкладке в правой части окна среды разработки (смотри рис. 6). На панели "Источники данных" отобразите поля таблицы "Специальности", щелкнув по значку "+", расположенному слева от имени таблицы (рис. 7).

    Рис. 7. 

    Панель "Источники данных" примет вид, представленный на рис.7.

    Замечание: Под полями таблицы специальности в виде подтаблицы располагается таблица "Студенты" (рис. 7). Подтаблица показывает, что таблица "Студенты" является вторичной по отношению к таблице специальности.

    Замечание: При выделении, какого либо поля таблицы, оно будет отображаться в виде выпадающего списка (рис. 7), позволяющего выбирать объект, отображающий содержимое выделенного поля (рис. 8).

    Рис. 8. 

    Для того чтобы поместить на новую форму поля таблицы их необходимо перетащить из панели "Источники данных" на форму. Из таблицы "Специальности" перетащите мышью на форму поля "Наименование специальности" и "Описание специальности". Форма примет вид, представленный на рис. 9

    Рис. 9. 

    Замечание: Мы не помещаем поле "Код специальности" на нашу форму, так как данное поле является первичным полем связи и заполняется автоматически. Конечный пользователь не должен видеть такие поля.

    Замечание: Обратите внимание, что после перетаскивания полей с панели "Источники данных" на форму в верхней части формы появилась навигационная панель, а в нижней части рабочей области среды разработки появились пять невидимых объектов. Эти объекты предназначены для связи нашей формы с таблицей "Специальности", расположенной на сервере. Рассмотрим функции этих объектов:

    • StudentDataSet (Набор данных Student) - обеспечивает подключение формы к конкретной БД на сервере (в нашем случае это БД Students);

    • СпециальностиBindingSource (Источник связи для таблицы "Специальности") - обеспечивает подключение к конкретной таблице (в нашем случае к таблице специальности), а также позволяет управлять таблицей;

    • СпециальностиTableAdapter (Адаптер таблиц для таблицы "Специальности") - обеспечивает передачу данных с формы в таблицу и наоборот.

    • TableAdapterManager (Менеджер адаптера таблиц) - управляет работой объекта СпециальностиTableAdapter;

    • СпециальностиBindingNavigator (Панель управления таблицей "Специальности") - голубая панель с кнопками управления таблицей, расположенная в верхней части формы

    Теперь нам необходимо проверить работоспособность новой формы. Для отображения формы "Специальности" ее необходимо подключить к главной кнопочной форме, а затем запустить проект и открыть форму "Специальности" при помощи кнопки на главной кнопочной форме.

    Отобразите главную кнопочную форму в рабочей области среды разработки, щелкнув по вкладке "Form1.vb [Design]" в верхней части рабочей области. Для подключения новой формы "Специальности" к главной кнопочной форме дважды щелкните ЛКМ по кнопке "Таблица "Специальности"", расположенной на главной кнопочной форме (рис. 18.3). В появившемся окне кода формы в процедуре "Button1_Click" наберите команду "Form2.Show()", предназначенную для открытия формы "Таблица "Специальности"" (Form2), как это показано на рис. 10.

    Рис. 10. 

    Теперь запустим проект, нажав на панели инструментов кнопку

    На экране появится главная кнопочная форма. Для открытия формы, отображающей таблицу "Специальности" на главной кнопочной форме нажмите кнопку "Таблица "Специальности"". Появится форма с соответствующей таблицей (рис. 11).

    Рис. 11. 

    Проверьте работу панели навигации, расположенной в верхней части формы, понажимав на ней различные кнопки. Вернитесь в среду разработки, просто закрыв форму с таблицей "Специальности" и главную кнопочную форму.

    Теперь создадим форму для просмотра таблицы предметы. Добавьте в проект новую форму. На форму добавьте надпись. Настройте свойства формы и надписи, как это было сделано для формы таблицы "Специальности". Затем из таблицы "Предметы" на новую форму поместите поля "Наименование предмета" и "Описание предмета". После выполнения всех вышеописанных действий форма для таблицы предметы будет выглядеть следующим образом (рис. 12):

    Рис. 12. 

    На главной кнопочной форме дважды щелкните ЛКМ по кнопке "Таблица "Предметы"" и в появившемся окне кода в процедуре "Button2_Click" наберите "Form3.Show()" (рис. 13).

    Рис. 13. 

    Проверим работу новой формы, отображающей таблицу "Предметы". Запустите проект и на главной кнопочной форме нажмите кнопку "Таблица "Предметы"". Отобразится таблица предметы имеющая следующий вид (рис. 14):

    Рис. 14. 

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

    Теперь создадим простую ленточную форму для отображения таблицы "Студенты". Для начала отобразите поля таблицы "Студенты" на панели "Источники данных", щелкнув ЛКМ по знаку "+", расположенному слева от названия таблицы. Отобразятся все поля таблицы "Студенты" (рис. 15).

    Рис. 15. 

    Замечание: Обратите внимание на тот факт, что поля "Дата рождения" и "Дата поступления" отображаются объектом "Выбор даты" (DataPicker), так как данные поля содержат значения дат. Поле "Очная форма обучения" является логическим, следовательно, для его отображения используется объект "Переключатель" (CheckBox). Остальные поля отображаются при помощи текстовых полей ввода (TextBox) (рис. 15).

    Создайте новую форму и поместите в ее верхнюю часть надпись. Задайте заголовок формы как "Таблица "Студенты"". В верхнюю часть формы поместите надпись. В качестве текста надписи задайте тот же самый текст, что был задан в качестве заголовка формы. Настройте свойства формы и надписи, аналогично формам созданным ранее. На форму с панели "Источники данных" переместите все поля кроме поля "Код студента". Так как данное поле является первичным полем связи. Новая форма примет вид (рис. 16):

    Рис. 16. 

    Обратите внимание на объекты, отображающие поля "Дата рождения", "Дата поступления" и "Очная форма обучения".

    Подключим форму, отображающую таблицу "Студенты" к главной кнопочной форме. Отобразите главную кнопочную форму и на ней дважды щелкните ЛКМ по кнопке "Таблица "Студенты"". В появившемся окне кода, в процедуре "Button3_Click" наберите следующую команду для открытия формы таблицы "Студенты" - "Form4.Show" (рис. 17).

    Рис. 18.17. 

    Теперь запустим проект. На экране появится главная кнопочная форма. Для открытия формы, отображающей таблицу "Студенты" на главной кнопочной форме нажмите кнопку "Таблица "Студенты"". Появится форма с соответствующей таблицей (рис. 18).

    Рис. 18. 

    Проверьте работу формы нажатием кнопок на панели навигации, расположенной в верхней части формы. Закройте форму, отображающую таблицу "Студенты" и главную кнопочную форму.

    Аналогичным образом создайте форму для отображения таблицы "Оценки". Добавьте на новую форму надпись, добавьте на форму все поля из таблицы "Оценки" и настройте их свойства, как описано выше. В итоге, форма для отображения таблицы "Оценки" будет выглядеть следующим образом (рис. 19):

    Рис. 19. 

    Подключите вновь созданную форму таблицы "Оценки" к главной кнопочной форме. Для этого отобразите главную кнопочную форму и на ней дважды щелкните ЛКМ по кнопке "Таблица "Оценки"". В появившемся окне с кодом, в процедуре "Button4_Click" наберите команду "Form5.Show" (рис. 20).

    Рис. 20. 

    Проверьте работу формы таблицы "Оценки", запустив проект, и на главной кнопочной форме нажмите кнопку "Таблица "Оценки"". Появится вновь созданная форма (рис. 21).

    Рис. 21. 

    В заключение, откройте обозреватель проекта (Solution Explorer) щелкнув по его вкладке в правой части окна среды разработки. На данной панели должны отобразиться все выше созданные формы (рис. 22).

    Рис. .22. 

    Стандартные объекты для отображения данных

    Способ создания объектов для отображения данных описанный ранее, позволяет создавать только ограниченный набор объектов. Однако, Visual Basic 2008 позволяет подключать источники данных практически к любому объекту, который может быть создан на форме. Это можно сделать при помощи перетаскивания поля источника данных из окна "Data Sources" на объект на форме.

    Операция состоит из двух шагов:

    • При помощи панели объектов (слева) на форме создается какой-то объект. Объекты несвязанные с источником данных называют несвязанными объектами;

    • Вновь созданный объект связывается с источником данных. Для этого на объект нужно перетащить поле таблицы запроса или фильтра из окна "Data Sources".

    Замечание: При перетаскивании поля из окна "Data Sources" необходимо учитывать его тип данных. Объект на форме должен поддерживать тип данных подключаемого к нему поля.

    Замечание: В случае подключения объекта к источнику данных, способом, описанным выше, подпись к объекту не создаётся автоматически и её надо создавать вручную с помощью объекта Label.

    Наиболее часто в БД используются следующие объекты для отображения информации:

    1. Текстовое поле (TextBox)

    2. Надпись (Label)

    3. Надпись со ссылкой (LinkLabel)

    4. Календарь (DataPicker)

    5. Переключатель (CheckBox)

    6. Таблица (DataGridView)

    7. Список (ListBox)

    8. Выпадающий список (ComboBox)

    9. Текстовое поле с маской ввода (MaskedTextBox)

    TextBox - отображает текст и числовые поля, это наиболее часто употребляемый объект для отображения данных. Его можно создавать либо перетаскиванием из окна "Data Sources", либо подключить вручную. Создание этого объекта, перетаскиванием возможно почти у полей любых типов данных.

    Label - полностью аналогичен объекту TextBox, но не позволяет изменить данные. Этот объект используется для отображения заблокированных неизменяемых полей.

    LinkLabel - специальный объект для отображения ссылок на адреса в Интернете. Его используют для отображения текстовых полей, если в них хранятся адреса Интернета или какой-то компьютерной сети. Это новый объект, ему не было аналога в Visual Basic 6.0.

    DataPicker - специальный объект, предназначенный для отображения полей типа данных "Дата/Время" в виде календаря.

    CheckBox - объект используется для отображения логических полей, может быть создан перетаскиванием только для логических полей.

    DataGridVilew - объект, отображающий источник данных (таблицу, запрос или фильтр) в виде таблицы.

    ListBox - список отображающий значения полей и позволяющий выбирать значения полей из списка. Более того, пункты списка можно задавать, используя другой источник данных.

    ComboBox - объект подобный объекту ListBox, однако информация отображается не в списке, а выпадающем списке.

    MaskedTextBox - нестандартный объект, предназначенный для отображения и ввода информации по заранее заданному шаблону (маске). Этот объект может быть создан только при помощи панели объектов и его подключение осуществляется либо перетаскиванием на него поля из окна "Data Sources", либо заданием его свойств вручную. По своим свойствам он ничем не отличается от объекта TextBox. Единственное дополнительное свойство у этого объекта это свойство Mask. Для этого нужно щелкнуть по кнопке действий объекта в верхнем правом углу объекта. Затем в списке действий выбрать пункт "Edit Mask". В появившемся окне выбрать шаблон ввода, то есть маску (Mask).

    Замечание: Тип данных отображаемой информации должен совпадать с типом данных маски.

    Замечание: Объекты ListBox и ComboBox могут использоваться для заполнения полей с кодами, то есть списки заполняются информацией из одной таблицы, а при выборе пункта списка его код подставляется в другую таблицу. Для этого на форму располагают не подключенный ListBox или ComboBox, затем открываем его меню действий. В меню действий в указанной последовательности выполняют следующие шаги:

    • Установить галочку "Use Data Bound Items",

    • В выпадающем списке "Data Source" выбрать пункт "Other Data Source" и там выбрать нужную таблицу.

    • В выпадающем списке "Display Member" и указываем поле, которое отображается в списке.

    • В выпадающем списке "Value Member" указываем поле, которое подставляем при выборе пункта списка.

    • В выпадающем списке "Selected Value" указываем поле, куда подставляется выбранное в "Value Member" значение.

    Программное управление информационной системой

    В Visual Studio 2008 добавлять, удалять записи и перемещаться по ним можно как используя объект Navigator, так и используя обычные кнопки. Рассмотрим создание кнопок для управления записями. В Visual Studio 2008 отсутствует объект "RecordSet" все операции с записями осуществляются с использованием объекта "BindingSource".

    В Visual Basic 2008 для добавления новой записи из таблицы "Студенты" используется команда вида СтудентыBindingSource.AddNew. Вместо метода AddNew можно использовать методы:

    • MoveNext (перейти к следующей);

    • MoveFirst (Перейти к первой);

    • Move Previous (Перейти к предыдущей);

    • Move Last (Перейти к последней);

    • Delete (Удалить запись).

    У объекта BindingSource имеется свойство Filter. Оно аналогично Filter у объекта RecordSet в Visual Basic 6.0. Его использование ничем не отличается от исполнения такого же свойства в Visual Basic 6.0. То есть в свойстве Filter задаётся строка, определяющая условие отбора записей в динамических фильтрах, выполняемых на стороне клиента. Данная строка имеет следующий синтаксис:

    <Поле1><Оператор1><Выражение1>

    [AND|OR <Поле2><Оператор2><Выражение2>…]

    Здесь:

    • <Поле1>, <Поле2> ... - поля на которые накладываются условия;

    • <Оператор1>, <Опрераторы2> - операторы сравнения, участвующие в условиях;

    • <Выражение1>, <Выражение2> - выражения с которыми сравниваются поля. Под выражениями понимаются, константы, переменные, формулы, функции и свойства объектов

    Пример: Из таблицы "Студенты" необходимо отобразить студента, у которого значение поля ФИО равно "Петров".

    СтудентыBindingSource.Filter = "ФИО = 'Петров'"

    Обычно при формировании запроса при помощи свойства Filter задания условий отбора используют либо списки ListBox, либо выпадающие списки ComboBox.

    Замечание: Если мы используем ComboBox для создания динамического фильтра, то в меню действий параметры "Value Member" и "Selected Value" настраивать не надо.

    Пример: Имеется таблица "Студенты", которая отображается на форме в DataGridView. Необходимо на форме поместить ComboBox с фамилиями студентов. При выборе ФИО и нажатием на кнопку отобразить данные только по выбранному студенту.

    В этом случае в меню действий ComboBox в параметре "Data Source" указываем "Other Data Source/Студенты". Затем в "Display Member" выбираем ФИО. В коде кнопки прописываем следующую команду:

    СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'"

    После нажатия кнопки в DataGridView отображаются данные по студенту, выбранному в выпадающем списке ComboBox1.

    Модернизируем форму для таблицы "Студенты". Сначала программно продублируем кнопки панели навигации, расположенной в верхней части формы. Откройте проект "StudentsDB" и отобразите форму таблицы студенты (Form4). В нижней части формы расположите семь кнопок, как это показано на рис. 1.

    Рис. 1. 

    В качестве надписей на созданных кнопках (Свойство "Caption") задайте как: "Первая", "Предыдущая", "Добавить", "Последняя", "Следующая", "Удалить" и "Сохранить" (рис. 2).

    Рис. 2. 

    Дважды щелкните ЛКМ по кнопке "Первая" и в появившемся окне кода формы "Form4" в процедуре "Button1_Click" наберите команду для перехода к первой записи "СтудентыBindingSource.MoveFirst()" (рис. 3).

    Рис. 3. 

    Дважды щелкните ЛКМ по кнопке "Предыдущая" и в появившемся окне кода формы "Form4" в процедуре "Button2_Click" наберите команду для перехода к предыдущей записи "СтудентыBindingSource.MovePrevious()" (рис. 4).

    Рис. 20.4. 

    Дважды щелкните ЛКМ по кнопке "Добавить" и в появившемся окне кода формы "Form4" в процедуре "Button3_Click" наберите команду для добавления новой записи "СтудентыBindingSource.AddNew()" (рис. 5).

    Рис. 5. 

    Дважды щелкните ЛКМ по кнопке "Последняя" и в появившемся окне кода формы "Form4" в процедуре "Button4_Click" наберите команду для перехода к последней записи "СтудентыBindingSource.MoveLast()" (рис. 6).

    Рис. 6. 

    Дважды щелкните ЛКМ по кнопке "Следующая" и в появившемся окне кода формы "Form4" в процедуре "Button5_Click" наберите команду для перехода к следующей записи "СтудентыBindingSource.MoveNext()" (рис. 7).

    Рис. 7. 

    Дважды щелкните ЛКМ по кнопке "Удалить" и в появившемся окне кода формы "Form4" в процедуре "Button6_Click" наберите команду для удаления текущей записи "СтудентыBindingSource.RemoveCurrent()" (рис. 8).

    Рис. 8. 

    Дважды щелкните ЛКМ по кнопке "Сохранить" и в появившемся окне кода формы "Form4" в процедуре "Button7_Click" наберите команду для сохранения изменений, отображенную на рис. 9.

    Рис. 9. 

    Рассмотрим последнюю процедуру более подробно. Она содержит следующие команды:

    • Me.Validate() - проверяет введенные в поля данные на соответствие типам данных полей;

    • Me.СтудентыBindingSource.EndEdit() - закрывает подключение с сервером;

    • Me.TableAdapterManager.UpdateAll(Me.StudentsDataSet) - обновляет данные на сервере.

    Для проверки работы созданных кнопок запустите проект откройте форму "Таблица "Студенты"" и нажмите каждую из кнопок.

    Теперь изменим объекты, отображающие поля для более удобного ввода информации. Для начала удалите текстовые поля ввода (TextBox), отображающие следующие поля таблицы "Студенты": "Пол", "Родители", "Телефон", "Паспортные данные", "Номер зачетки", "Курс" и "Код специальности". После удаления, перечисленных полей форма, отображающая таблицу "Студенты" примет следующий вид (рис.10):

    Рис. 10. 

    Для отображения полей "Телефон", "Паспортные данные" и "Номер зачетки" будем использовать текстовые поля ввода по маске (MaskedTexBox). Объект текстовое поле ввода по маске отсутствует в выпадающем списке объектов для отображения полей в окне "Источники данных", поэтому будем создавать данные объекты при помощи панели объектов (Toolbox), а затем подключать их к соответствующим полям вручную. Для создания текстовых полей ввода по маске на панели объектов используется кнопка

    Создайте текстовые поля ввода по маске справа от надписей "Телефон", "Паспортные данные" и "Номер зачетки", как это показано на рис. 11.

    Рис. 11. 

    Теперь у созданных объектов настроим маски ввода. Начнем с объекта, отображающего номер зачетки. На форме выделите соответствующее полю "Номер зачетки" текстовое поле ввода по маске. Для задания маски в меню действий с объектом выберите пункт "Set Mask…" (Установить маску…) (рис. 12).

    Рис. 12. 

    После выбора пункта "Set Mask…" на экране появится окно задания маски "Input Mask" (Введите маску) (рис. 13).

    Рис. 13. 

    В окне "Input Mask" выберите маску "Numeric (5-digits)" (Числовое (5-цифр)) и нажмите кнопку "Ok" (рис. 13).

    Для текстового поля ввода по маске для поля "Паспортные данные" задайте маску как показано на рис. 14.

    Рис. 14. 

    Замечание: Обратите внимание, что паспортные данные отображаются как четыре числа, тире, шесть чисел. То есть в поле "Mask" (Маска) нужно задать "0000-000000". Знак "0" обозначает цифру. В поле "Preview" (Предварительный просмотр) отображается вид текстового поля ввода по маске на форме.

    После определения маски для поля "Паспортные данные" в окне "Input Mask" нажмите кнопку "Ok".

    Теперь зададим маску для текстового поля ввода по маске отображающего поле "Телефон". Задайте маску как показано на рис. 15.

    Рис. 15. 

    Теперь нам необходимо подключить созданные текстовые поля ввода по маске к соответствующим полям. Для этого с панели "Источники данных" (DataSources) перетащите поле "Номер зачетки" на текстовое поле ввода по маске, расположенное справа от надписи "Номер зачетки". Проделайте такую же операцию с полями "Паспортные данные" и "Телефон", перетащив их на соответствующие им текстовые поля ввода по маске.

    На этом мы заканчиваем работу с текстовыми полями ввода по маске и переходим к отображению поля "Курс" при помощи числового счетчика (объект NumericUpDown). Для этого, на панели "Источники данных" нажмите кнопку, расположенную справа от поля "Курс" и в выпадающем списке выберите объект для отображения данного поля как "NumericUpDown" (рис. 16).

    Рис. 16. 

    Затем перетащите поле на форму мышью, расположив, его справа от надписи "Курс".

    Замечание: После перетаскивания поля "Курс" на форму слева от него появится еще одна надпись "Курс". Удалите ее, щелкнув по ней ЛКМ, а затем нажав кнопку "Delete" на клавиатуре.

    Отобразим поля "Пол" и "Родители" в виде выпадающих списков (Объект ComboBox). Для этого, на панели "Источники данных" нажмите кнопку, расположенную справа от поля "Пол" и в выпадающем списке выберите объект для отображения данного поля как "ComboBox" (рис. 17).

    Рис. 17. 

    Такую же операцию проделайте с полем "Родители". Затем перетащите мышью поля на форму, расположив их напротив соответствующих надписей. Удалите лишние надписи.

    Теперь заполним выпадающие списки. Выделите выпадающий список, отображающий поле "Пол". На панели свойств (Properties) и нажмите кнопку в свойстве "Items" (Элементы списка). Появится окно "String Collection Editor" (Редактор строковых коллекций) (рис. 18).

    Рис. 18. 

    В появившемся окне в отдельных строках наберите элементы выпадающего списка: "Мужской" и "Женский" (рис. 18). Затем нажмите кнопку "Ok".

    Для выпадающего списка, отображающего поле "Родители", проделайте аналогичную операцию, только в качестве пунктов списка задайте: "Отец и Мать", "Мать", "Отец" и "Нет" (рис. 19).

    Рис. 19. 

    В заключение отобразим вместо поля "Код специальности" специальность соответствующую заданному коду, при помощи выпадающего списка. При этом сам выпадающий список будет заполнен специальностями из таблицы "Специальности" и при выборе специальности ее код будет автоматически подставляться в поле "Код специальности" таблицы "Студенты".

    Поместите справа от надписи "Код специальности", неподключенный ни к каким полям выпадающий список. Для создания выпадающего списка на панели объектов воспользуйтесь кнопкой

    После создание выпадающего списка подключим его к полю "Код специальности" из таблицы "Студенты" и настроим заполнение списка значениями поля "Наименование специальности" из таблицы студенты. Для этого выделите вновь созданный выпадающий список, отобразите меню действий и в меню действий включите опцию "Use data bound items" (Использовать связанные с данными элементы списка) (рис. 20).

    Рис. 20. 

    В панели действий под опцией "Use data bound items" расположены следующие параметры:

    • Data Source (Источник данных) - определяет таблицу или запрос из которого заполняется список;

    • Display Member (Член отображения) - определяет поле значениями которого заполняется список;

    • Value Member (Член значений) - определяет значения какого поля подставляются в связанное с выпадающим списком поле;

    • Selected Value (Выбранное значение) - определяет связанное с выпадающим списком поле.

    Для изменения параметров необходимо нажать кнопку

    в нутрии поля параметра. Появится древовидная структура выбора источника данных (рис. 21).

    Рис. 21. 

    В нашем случае зададим вышеперечисленные параметры следующим образом:

    • Параметр "DataSource" задайте как "Other Data Sources\Project Data Sources\StudentsDataSet\Специальности";

    • Параметр "DataMember" задайте как "Наименование специальности";

    • Параметр "Value Member" задайте как "Код специальности";

    • Параметр "Selected Value" задайте как "СтудентыBindingSource\Код специальности".

    После задания всех вышеперечисленных параметров панель действий выпадающего списка примет вид (рис. 22):

    Рис. 22. 

    Обратите внимание на то, что на панели невидимых объектов, расположенной в нижней части рабочей области среды разработки, появилось два новых объекта: "СпециальностиBindingSource" и "СпециальностиTableAdapter" (рис. 23).

    Рис. 23. 

    Данные объекты предназначены для заполнения выпадающего списка значениями поля "Наименование специальности" таблицы "Специальности".

    После всех вышеперечисленных действий форма, отображающая таблицу "Студенты" примет вид, представленный на рис. 24.

    Рис. 24. 

    Проверим работу формы, отображающей таблицу "Студенты". Запустите проект и на главной кнопочной форме нажмите кнопку "Таблица "Студенты"". Появится форма, имеющая следующий вид (рис. 25):

    Рис. 25. 

    На этом мы заканчиваем работу с формой, отображающей таблицу "Студенты" и переходим к реализации вычислимых полей. Для этого рассмотрим форму, отображающую таблицу "Оценки" (Form5). Рассмотрим вычисление поля "Средний балл" на основе среднего трех полей:

    Отобразите форму для таблицы "Оценки", щелкнув ЛКМ по ее вкладке в верхней части рабочей области среды разработки. На форму, справа от поля "Средний балл" поместите кнопку (рис. 26).

    Рис. 26. 

    Задайте свойство "Text" у вновь созданной кнопки как "Вычислить" (рис. 27).

    Рис. 27. 

    Теперь дважды щелкните ЛКМ по кнопке "Вычислить" и в появившемся коде процедуры "Button1_Click" наберите код, представленный на рис. 28, вычисляющий среднее оценок.

    Рис. 28. 

    Теперь проверим, как работает наша вновь созданная кнопка для вычисления поля "Средний балл". Запустите проект и на главной кнопочной форме нажмите кнопку "Таблица "Оценки"". Появится форма, отображающая таблицу "Оценки", на форме нажмите кнопку "Вычислить". Будет вычислен средний балл по оценкам. Если нажать кнопку сохранения на панели инструментов формы

    то средний балл будет сохранен в таблицу "Оценки" (рис. 29).

    Рис. 29. 

    Объект для отображения табличной информации DataGridView

    Объект DataGridView предназначен для отображения всей информации из таблиц, запросов или фильтров на форме в виде таблицы. Этот объект может быть создан как вручную (с последующим его подключением), так и перетаскиванием всего источника данных из окна "Data Sources". Однако наиболее часто его создают перетаскиванием всей таблицы, запроса или фильтра из окна "Data Sources" на форму.

    При перетаскивании этого объекта на форму, как и в случае с другими объектами появляется панель навигации. Она выполняет функции: перемещение по записям, добавление, удаление и сохранение записей. После создания объекта DataGridView можно настраивать как свойства всего объекта, так и свойства отдельных столбцов. Начнём с настройки свойств всего объекта. Настройка данных свойств осуществляется в основном через меню действий. Возможны следующие настройки:

    • Chose Data Source - источник данных, отображаемый в таблице;

    • Enable Adding - добавлять записи;

    • Enable Deleting - разрешается пользователям удалять записи;

    • Enable Editing - разрешается пользователям изменять значения полей таблицы;

    • Enable Column Reordering - разрешается пользователям изменять порядок столбцов, просто перетаскивая их мышью.

    Также в меню действий возможны следующее действия с таблицей:

    • Dock in parent container - вписать объект в форму;

    • Preview Data - появляется окно с предварительным просмотром таблицы;

    • Add Query - добавляет SQL - запрос, который выполняется на стороне клиента;

    • Add Column - добавление нового столбца в таблицу;

    • Edit Columns - настойка свойств отдельных столбцов таблицы.

    Теперь перейдём к настройке отдельных столбцов таблицы.

    Настройка свойств столбцов в DataGridView

    Если в меню действий выбрать пункт "Edit Columns", то появляется окно, где можно добавлять, удалять и редактировать столбцы. Для этого в списке столбцов левой части окна выбираем столбец, а в правой - настраиваем его свойства. Наиболее часто настраиваются следующие свойства:

    1. Name - имя столбца;

    2. AutoSizeMode - подгонка ширины столбца по его содержимое;

    3. ColumnType - определяет внешний вид ячеек столбца (какой объект для отображения информации находится в ячейках столбца);

    4. DataPropertyName - имя, отображающего в столбце поля;

    5. Frozen - фиксация столбца (столбец не передвигается при прокручивании таблицы);

    6. HeaderText - текст заголовка столбца;

    7. Width - ширина поля;

    8. MaxInputLength - максимально вводимая длина текста;

    9. MinimumWidth - минимальная ширина столбца;

    10. ReadOnly - блокировка столбца для редактирования данных;

    11. Resizable - разрешает менять ширину столбца;

    12. SortMode - сортировка данных в таблице по этому столбцу;

    13. ToolTipText - всплывающая подсказка для столбца;

    14. Visible - делает столбец невидимым.

    Замечание: Для добавления новых столбцов в окне "Edit Columns" необходимо нажать кнопку Add, а для удаления кнопку Remove.

    Замечание: Если необходимо настроить внешний вид всех ячеек таблицы, то для этого необходимо выделить объект DataGridView и на панели свойств зайти в свойство DefaultCellStyle. Появится окно со свойствами всех ячеек таблицы.

    Замечание: В объекте DataGridView имеется возможность сортировки данных. Для этого используется метод Sort, имеющий следующий синтаксис:

    DataGridView.Sort(<Имя столбца>, <Порядок сортировки>)

    где DataGridView - это имя объекта, <Имя столбца> - это имя столбца (свойство Name) по которому происходит сортировка записей в таблице, параметр <Порядок сортировки> определяет порядок сортировки и может принимать два значения:

    • System.ComponentModel.ListSortDirection.Ascending - сортировка по возрастанию;

    • System.ComponentModel.ListSortDirection.Descending - сортировка по убыванию.

    Замечание: Доступ к отдельным ячейкам таблицы можно получить через подобъект Item. Обращение к нему осуществляется следующим образом:

    DataGridView.Item(i, j).<Свойство>

    Здесь DataGridView - это имя объекта, i - горизонтальная координата ячейки, а j - вертикальная, <Свойство> - это настраиваемое свойство ячейки.

    Пример: В верхнюю левую ячейку таблицы записать слово "Привет" и сделать цвет текста в ячейке красным.

    DataGridView.Item(0, 0).Value = "Привет"

    DataGridView.Item(0, 0).Style.ForeColor = Color.Red

    Здесь DataGridView - это имя объекта, свойство Value определяет содержимое ячейки таблицы, свойство Style.ForeColor определяет цвет текста в ячейке. Нумерация столбцов и строк в таблице начинается с нуля.

    Перейдем теперь к созданию табличных форм для отображения данных. В данной главе также затрагиваются вопросы фильтрации и сортировки данных, а также реализуется поиск информации в таблице.

    Рассмотрим создание табличной формы на примере формы, отображающей таблицу "Студенты". Добавьте в проект новую форму и на нее поместите следующие объекты:

    • четыре надписи (Label),

    • пять кнопок (Button),

    • выпадающий список (ComboBox),

    • текстовое поле ввода (TextBox),

    • группирующую рамку (GroupBox),

    • список (ListBox),

    • два переключателя (RadioButton).

    Расположите объекты как показано на рис. 1.

    Рис. 1. 

    Замечание: Для создания объекта группирующая рамка используется кнопка ### на панели объектов (Toolbox), а для создания переключателя - кнопка ###.

    Добавим на форму таблицу для отображения данных (DataGridView) из таблицы "Студенты". Для этого на панели "Источники данных" (Data Sources), нажмите кнопку

    расположенную справа от таблицы "Студенты". В появившемся списке объектов для отображения всей таблицы выберите "DataGridView" (рис. 2).

    Рис. 2. 

    Перетащите таблицу "Студенты" из панели "Источники данных" на форму. Форма примет следующий вид (рис. 3):

    Рис. 3. 

    Обратите внимание на то, что на форме появилась таблица для отображения данных, подключенная к таблице "Студенты". Также появились объекты связи и панель навигации (рис. 4).

    Рис. 4. 

    Теперь перейдем к настройке свойств объектов. Начнем с настройки свойств формы. Задайте свойства формы следующим образом:

    • FormBorderStyle (Стиль границы формы): Fixed3D;

    • MaximizeBox (Кнопка развертывания формы во весь экран): False;

    • MinimizeBox (Кнопка свертывания формы на панель задач): False;

    • Text (Текст надписи в заголовке формы): Таблица "Студенты" (Табличный вид).

    Задайте свойства надписей (Label1, Label2, Label3 и Label4) как:

    • AutoSize (Авторазмер): False;

    • Text (Текст надписи): "Таблица "Студенты" (Табличный вид)", "Поле для сортировки", "ФИО:" и "Критерий" (Соответственно для Label1, Label2, Label3 и Label4).

    Для надписи Label1 задайте:

    • Font (Шрифт): Microsoft Sans Serif, размер 14;

    • ForeColor (Цвет текста): Темно синий;

    • TextAlign (Выравнивание текста): MiddleCenter.

    Задайте надписи на кнопках как: "Сортировать", "Фильтровать", "Показать все", "Найти" и "Закрыть" (Соответственно для кнопок Button1, Button2, Button3, Button4 и Button5). Для того чтобы нельзя было произвести сортировку не выбрав поля изначально заблокируем кнопку "Сортировать" (Button1).

    У группирующей рамки задайте заголовок (Свойство Text) равным "Сортировка". У переключателей (Объекты RadioButton1 и RadioButton2) задайте надписи как "Сортировка по возрастанию" и "Сортировка по убыванию", а у переключателя "Сортировка по возрастанию" (RadioButton1) задайте свойство Checked (Включен) равное True (Истина).

    Заполните список (ListBox1) значениями, представленными на рис. 5, а затем нажмите кнопку "Ok".

    Рис. 5. 

    Настроим таблицу для отображения данных, удалив из нее поля с кодами. Выделите таблицу на форме и отобразите ее меню действий, щелкнув по кнопке

    расположенной в верхнем правом углу таблицы. В меню действий выберите пункт "Edit columns…" (рис. 6).

    Рис. 6. 

    Появится окно настройки свойств полей таблицы "Edit Columns" (рис. 7).

    Рис. 7. 

    В окне "Edit Columns" из списка полей удалите поля "Код студента" и "Код специальности", выделив их и нажав кнопку "Remove" (Удалить). Список полей примет вид показанный на рис. 7. Для закрытия окна редактирования полей, и сохранения изменений нажмите кнопку "Ok".

    Настроим заполнение выпадающего списка именами студентов из таблицы студенты. Отобразите меню действий выпадающего списка. Включите опцию "Use Data Bound Items". Установите параметр "Data Source" равным "Other Data Sources\Project Data Sources\StudentsDataSet\Студенты", а параметр "Display Member" равным "ФИО". Остальные параметры оставьте без изменений (рис. 8).

    Рис. 8. 

    Закройте окно действий выпадающего списка. На панели невидимых объектов появится дополнительный объект связи "СтудентыBindingSource1", предназначенный для заполнения выпадающего списка (рис. 9).

    Рис. 9. 

    После настройки всех вышеперечисленных свойств объектов новая форма примет вид (рис. 10):

    Рис. 10. 

    На этом мы заканчиваем настройку свойств объектов и переходим к написанию кода обработчиков событий объектов.

    Работу с кодом начнем написания кода для разблокирования кнопки "Сортировать", при выборе пункта списка (ListBox1). Для создания процедуры события дважды щелкните ЛКМ по списку. Появится процедура обработки события, происходящего при выборе пункта списка (ListBox1_SelectedIndexChanged). В процедуре наберите команду разблокировки кнопки "Сортировать" (Button1): Button1.Enabled = True (рис.11).

    Рис. 11. 

    Теперь перейдем к созданию кода сортирующего нашу таблицу в зависимости от выбранного поля и порядка сортировки при нажатии кнопки "Сортировать". Дважды щелкните по кнопке "Сортировать". Появится процедура "Button1_Click", выполняемая при щелчке по кнопке. В процедуре наберите код, представленный на рис. 12.

    Рис. 12. 

    Рассмотрим код более подробно:

    Команда Dim Col As System.Windows.Forms.DataGridViewColumn создает переменную Col для хранения имени выбранного столбца таблицы;

    Затем следует блок 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). Дважды щелкните по кнопке "Фильтровать" и в процедуре обработки события "Button2_Click" наберите код: СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'" (рис. 13).

    Рис. 13. 

    Замечание: У объекта СтудентыBindingSource имеется текстовое свойство Filter (рис. 13), которое определяет условие фильтрации. Условие фильтрации имеет синтаксис: "<Имя поля><Оператор>'<Значение>'".В нашем случае значение поля "ФИО" приравнивается к значению, выбранному в выпадающем списке (ComboBox1.Text) (рис. 13).

    Теперь перейдем к кнопке "Показать все", отменяющей фильтрацию записей. Дважды щелкните по вышеперечисленной кнопке. Появится процедура Button2_Click. В появившейся процедуре наберите команду СтудентыBindingSource.Filter = "" (рис. 14).

    Рис. 14. 

    Заметим, что если присвоить свойству "Filter" значение пустой строки (""), то его действие будет отменено (рис. 14).

    Далее рассмотрим реализацию поиска информации в таблице. Дважды щелкните по кнопке "Найти". В появившейся процедуре обработки нажатия кнопки "Button4_Click" наберите следующий код (рис. 15).

    Рис. 15. 

    Рассмотрим более подробно код вышеприведенной процедуры. Данная процедура состоит из двух частей:

    • Первый блок For i=0…..Next i. перебирает все ячейки таблицы и устанавливает в них белый цвет фона и черный цвет текста. То есть, отменяет результаты предыдущего поиска;

    • Второй блок For i=0…..Next i. перебирает все ячейки таблицы и если они содержат текст, введенный в поле ввода (TextBox1), то устанавливает в них голубой цвет фона и синий цвет текста, чем выделяет искомые ячейки.

    Наконец рассмотрим код для кнопки "Закрыть". Дважды щелкните ЛКМ по этой кнопке и в появившейся процедуре "Button5_Click" наберите команду "Me.Close()", закрывающую выше рассматриваемую форму (рис. 16).

    Рис. 16. 

    В заключение создадим кнопку на ленточной форме, отображающей таблицу "Студенты", для отображения соответствующей табличной формы. Откройте ленточную форму для таблицы "Студенты" (Form4) и поместите на нее новую кнопку, как это показано на рис. 17.

    Рис. 17. 

    Задайте надпись у новой кнопки (свойство Text), как "Таблица". Форма примет следующий вид (рис. 18):

    Рис. 18. 

    Подключим к кнопке "Таблица" созданную ранее табличную форму (Form6). Для этого дважды щелкните ЛКМ по кнопке "Таблица" и в появившейся процедуре "Button8_Click" наберите команду "Form6.Show" (рис. 19).

    Рис. 19. 

    Теперь проверим работоспособность созданной табличной формы. Запустите проект и на главной кнопочной форме нажмите кнопку "Таблица "Студенты"". На появившейся ленточной форме, отображающей таблицу "Студенты" нажмите кнопку "Таблица". Появится новая табличная форма (рис. 20).

    Рис. 22.20. 

    Проверьте, как работает поиск, фильтрация и сортировка записей в таблице, нажимая на соответствующие кнопки. После проверки работы формы для возвращения в среду разработки просто закройте все формы.

    После проведения всех вышеописанных действий панель обозревателя проекта (Solution Explorer) примет вид (рис. 21):

    Рис. 21. 

    Отчеты.

    Теперь создадим форму отображающий созданный отчет. Добавьте в проект новую форму (Form7). Определите заголовок формы (Свойство Text) как "Отчет таблицы "Студенты"".

    Поместите на форму специальный объект, отображающий отчеты "MicrosoftReportViewer", используя кнопку

    расположенную на панели объектов (Toolbox). К объекту, отображающему отчеты подключите, созданный ранее отчет. Для этого в меню действий в выпадающем списке "Choose report" (Выберите отчет) выберите отчет "StudentsDB.Report1.rdlc".

    Разверните объект, отображающий отчеты во всю форму. Для этого в меню действий объекта выберите пункт "Dock in Parent Container" (Развернуть в родительский контейнер). Меню действий примет вид (рис. 22):

    Рис. 22. 

    Замечание: Обратите внимание на тот факт, что после подключения отчета к объекту, отображающему отчеты, на панели невидимых объектов появились объекты связи, подключающие отчет к таблице "Студенты" (рис. 23).

    Рис. 23. 

    После выполнения всех вышеперечисленных действий форма, отображающая отчет примет вид, представленный на рис. 24.

    Рис. 24. 

    Проверим работоспособность нового отчета, подключив форму для его отображения к кнопке на форме "Таблица "Студенты"". На форме, отображающей таблицу "Студенты" создайте кнопку (Button9).

    Рис. 25 

    Задайте надпись на кнопке (Свойство Text) равную "Отчет" (рис. 26).

    Рис. 26. 

    Теперь определим код обработчика события нажатия кнопки. Дважды щелкните ЛКМ по кнопке "Отчет" и в появившейся процедуре "Button9_Click" наберите команду "Form7.Show()" (рис. 27).

    Рис. 27. 

    Запустите проект и на главной кнопочной форме нажмите кнопку "Таблица "Студенты"". На появившейся ленточной форме, отображающей таблицу "Студенты" нажмите кнопку "Отчет". Появится новая форма с отчетом, построенным по таблице "Студенты" (рис. 28).

    Рис. 28. 

    Проверьте работу отчета.

    Оформление курсовой работы Представление работы

    Выполненная курсовая работа представляется на кафедру до 10.06.11

    Печатная часть: Пояснительная записка – в аудиторию 201 секретарю кафедры

    Электронная часть: Размещается в личной папке студента в корневом каталоге. Папка с отчетом по курсовой работе должна иметь имя Курсовая (ФамилияСтудента). В папке с отчетом разместить:

    - Папку с решением. Папка с решением должна содержать проект с исходным и исполняемым кодом, файл/файлы контрольного примера. При использовании личной библиотеки классов в этой же папке должен находиться проект с исходным и исполняемым кодом библиотеки. Решение должно быть представлено в формате среды разработки Visual Studio.NET 2008

    - Электронный вариант пояснительной записки в формате Word 2003

    Структура пояснительной записки

    Титульный лист (приведен в файле Титульный лист.doc)

    Содержание пояснительной записки

    Введение

    Формулируется цель работы

    Функции приложения

    Структура модифицированной базы данных

    Интерфейс пользователя: перечень элементов управления, расположенных на форме (формах) с указанием их функционального назначения

    Текст программ

    Пример работы

    Требования по оформлению пояснительной записки

    Размер шрифта - 12 pt;

    Для основного текста использовать начертание шрифта Times New Roman;

    Для программного кода – Courier New

    Междустрочный интервал – 1,5;

    Поля должны быть одинаковыми на всех страницах: левое–20 мм, правое–10 мм, нижнее и верхнее – 20 мм;

    Каждый раздел пояснительной записки должен начинаться с новой страницы и иметь номер;

    Текст подраздела продолжает основной текст на текущей странице. Заголовок подраздела отделяется от основного текста двумя интервалами (одна пустая строка). Подраздел должен иметь номер, состоящий из номера раздела, номеров подразделов верхнего уровня и номера подраздела, разделенных символом точки;

    Заголовки и подрисуночные подписи не содержат точек в конце;

    Основной текст должен быть выровнен по ширине;

    Рисунки, схемы, таблицы и диаграммы не должны нарушать границ документа;

    Все рисунки, таблицы и диаграммы должны иметь сквозную нумерацию

    Основной текст пояснительной записки (начиная с введения) должен иметь номера страниц (по центру, начиная с 2) и верхний колонтитул с фамилией автора.

    Оглавление пояснительной записки должно быть построено автоматически по готовому документу

    Размер пояснительной записки без учета приложений не должен превышать 15 страниц.

    Титульный лист

    ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ

    УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

    «ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

    МИНИСТЕРСТВА ФИНАНСОВ РОССИЙСКОЙ ФЕДЕРАЦИИ»

    Факультет прикладной информатики и математики

    Кафедра «Прикладная информатика»

    Курсовая работа по дисциплине « Базы данных»

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

    Тема работы

    Организация доступа из приложений к базе данных SQL- сервер

    Выполнил(а): студент(ка) группы 2ПИ1

    _________________________Иванов Л.А.

    “ “ июня 2012г

    тел. ________________________________

    e-mail: ______________________________

    Руководитель:

    ________________________

    Дата защиты: “ “ ______________2012г

    Оценка: _____________________

    Москва 2012

    81