Разработка автоматизированной системы «Магазин бытовой техники»

Автор работы: Пользователь скрыл имя, 08 Мая 2014 в 16:42, курсовая работа

Краткое описание

Цель исследования: при помощи языка программирования C-Sharp (C#) и визуальной среды VisualStudio 2010 создать программу, которая позволяет работать с базой данных.
Задачи исследования: научиться работать с базой данных в среде Visual Studio 2010 и создать программу, представляющую собой программную оболочку для управления базой данных.
В данной работе рассмотрены основные средства управления базами данных в среде Visua lStudio 2010, используя механизм доступа к данным OLE DB и язык программирования С-Sharp (C#).

Содержание

Введение 4
Глава 1. Механизмы доступа к данным 5
1.1. OLE DB и ADO 7
1.2. OLE DB 9
1.3. Объекты OLE DB 11
1.3.1. Объект DataSource 11
1.3.2. Объект Session 11
1.3.3. Объект Command 12
1.3.4. Объект Rowset 12
1.3.5. Объект Enumerator 13
1.3.6. Объект Transaction 13
1.3.7. Объект Error 13
Глава 2. Разработка автоматизированной системы «Магазин бытовой техники» 15
2.1. База данных 15
2.1.1. Концептуальное проектирование 15
2.1.2. Таблицы 16
2.1.3. Схема данных 18
2.2. Выбор языка и среды программирования 19
2.3. Подключение базы данных в Visual Studio 2010 .NET 19
3.1. Интерфейс программы 20
Главная форма. 20
3.1.1. Вспомогательная форма. 23
3.2. Написание кода 24
3.2.1. Форма FormAdmin (файл FormAdmin.cs) 24
3.2.2. Форма FormNewType (файл FormNewType.cs) 30
3.3. Назначение событий элементам 32
Заключение 33
Список использованной литературы 34

Вложенные файлы: 1 файл

КУРСОВАЯ.doc

— 539.50 Кб (Скачать файл)
  • получение от потребителя запросов на получение или модификацию данных;
  • получение данных из базы данных или их модификацию в базе данных;
  • возвращение данных потребителю.

Провайдер сервисов (или сервисный компонент) реализует расширенную функциональность, не поддерживаемую обычными провайдерами данных, например сортировку и фильтрацию данных, обработку транзакций и SQL-запросов, управление курсором и др. Сервисный компонент может обращаться к хранилищу данных непосредственно или с помощью соответствующего провайдера данных - в этом случае провайдер сервисов является одновременно и провайдером, и потребителем. Например, сервисные компоненты, такие как MicrosoftCursorServicefor OLE DB и MicrosoftDataShapingServicefor OLE DB, могут использоваться совместно с провайдерами данных OLE DB для расширения их функциональности.

На рисунке 1 показано, как компоненты OLE DB взаимодействуют между собой. Из рисунка следует, что потребитель может получать данные как непосредственно с помощью провайдера данных, так и с использованием сервисов, предоставляемых сервисными компонентами.

 

Рисунок 2

 

    1. Объекты OLE DB

Объектная модель OLE DB содержит четыре ключевых объекта:

  • DataSource;
  • Session;
  • Command;
  • Rowset.

 

 

 

 

 

 

 

 

      1. Объект DataSource

Объект DataSource, применяемый потребителями данных для соединения с провайдером, может быть создан различными способами, включая вызов функции CoCreateInstance с идентификатором класса (CLSID, ClassIdentifier) OLE DB-провайдера, использование объекта Enumerator (см. ниже), который занимается поиском источников данных, и пр. Объект DataSource инкапсулирует информацию, связанную с соединением (включая имя пользователя и пароль). Основное назначение этого объекта - предоставлять данные из источника данных потребителю.

Для создания новой сессии (объект Session) потребитель должен вызвать метод CreateSession интерфейса IDBCreateSession объекта DataSource.

      1. Объект Session

Объект Session предоставляет контекст для транзакций, может генерировать наборы данных (rowsets) из источников данных, а также команды для запросов к источнику данных. Объект Session может выполнять роль фабрики классов для объектов Command и Rowset (см. ниже) и объекта Transaction, применяемого для управления вложенными транзакциями. Объекты Command и Rowset могут быть использованы для создания или модификации таблиц и индексов. Интерфейс IOpenRowset используется потребителями данных для работы с отдельными таблицами и индексами в хранилище данных.

С одним объектом DataSource может быть связано несколько объектов Session.

Если OLE DB-провайдер поддерживает команды или запросы, он должен уметь порождать объект Command. С одним объектом DataSource может быть связано несколько объектов Command. Для создания нового объекта Command применяется метод CreateCommand интерфейса IDBCreateCommand.

      1. Объект Command

Объект Command используется для выполнения команд, представляющих собой строки, передаваемые от потребителя данных объекту DataSourceдля выполнения. В большинстве случаев такая команда представляет собой SQL-предложение SELECT, однако в общем случае это может быть любое другое SQL-предложение (например, DDL-предложение). Команды могут содержать параметры - в этом случае применяется интерфейс ICommandWithParameters. Одна сессия может порождать несколько команд. Результатом выполнения команды (с помощью метода Execute интерфейса ICommand) обычно является новый объект Rowset.

      1. Объект Rowset

Объект Rowset (набор данных) позволяет OLE DB-провайдеру данных представлять данные из источников данных в табличном формате, то есть в виде набора строк, содержащих одну или несколько колонок. Этот объект мо3жет быть результатом выполнения команды или может быть сгенерирован непосредственно провайдером данных, если провайдер не поддерживает команд. Все провайдеры данных <умеют> создавать наборы данных напрямую. Объект Rowset может быть также использован для обновления, добавления или удаления строк - это зависит от функциональности провайдера данных.

С помощью интерфейса IRowset из объекта Rowset потребители могут перемещаться по набору данных вперед и, если набор данных позволяет, назад. Некоторые провайдеры могут предоставлять дополнительные функции наподобие непосредственного доступа или определения примерной позиции данной строки в наборе.

Частным случаем объекта Rowset является объект Index, предоставляющий набор строк, использующий соответствующий индекс для получения набора данных в упорядоченном виде.

Существуют также специальные объекты типа Rowset - schemarowsets, содержащие метаданные (то есть сведения о структуре данных), и viewrowsets, содержащие подмножество строк и столбцов объекта Rowset.

Помимо четырех основных объектов, перечисленных выше, существуют и другие объекты OLE DB. Они нужны для перечисления источников данных, управления транзакциями, обработки ошибок и др. Некоторые из них мы рассмотрим ниже.

      1. Объект Enumerator

Объект Enumerator необходим для получения списка доступных объектов, обеспечивающих доступ к источникам данных (OLE DB-провайдеров). Этот объект используется потребителями данных для поиска соответствующих объектов. В большинстве случаев сведения, возвращаемые объектом Enumerator, извлекаются из системного реестра. Этот объект реализует интерфейс ISourceRowsetи возвращает объект Rowset с описанием всех источников данных и других доступных с его помощью объектов Enumerator. Для этой цели используется метод GetSourcesRowset интерфейса ISourceRowset.

      1. Объект Transaction

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

Транзакции бывают локальными и распределенными. Локальные транзакции - это транзакции, выполняемые в контексте единого провайдера данных. Провайдер, поддерживающий локальные транзакции, должен реализовать интерфейс ITransactionLocal. Транзакция начинается с вызова метода StartTransaction, завершается с помощью метода Commit или откатывается с помощью Abort. Способность провайдера поддерживать транзакции может быть определена с помощью интерфейса IDBProperties.

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

      1. Объект Error

В дополнение к кодам возврата и информации о состоянии, свидетельствующей об успехе или неуспехе вызова любого из методов OLE DB, OLE DB-провайдеры могут предоставлять расширенную информацию об ошибках с помощью объекта Error. Потребители данных могут использовать интерфейс ISupportErrorInfo для того, чтобы определить, может ли данный объект возвратить объект Error, и если да, то каковы эти интерфейсы.

 

Глава 2. Разработка автоматизированной системы «Магазин бытовой техники»

    1. База данных

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

 

      1. Концептуальное проектирование

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

Товар

Код товара (Code)

Код типа товара (Type)

Название товара (Caption)

Описание товара (Description)

Цена товара (Price)

Тип товара

Код типа товара (Code)

Тип товара (Type)


 

Установим связи.

Изобразим связь Товар- Тип товара. Так как определенный тип могут иметь несколько товаров, и каждый товар имеет только один тип, то получаем связь типа 1:M.


Получаем следующую ER-модель предметной области:


 

      1. Таблицы

База данных содержит две таблицы:

    1. Categories – содержит коды и названия типов товаров
    2. Products – содержит список товаров и информацию о них (код, код типа, название, описание, цена).

 

Таблица «Categories»

 

Рисунок 6

 

Свойства таблицы в конструкторе:

Имя поля

Тип данных

Описание

Code

Счётчик

Код типа товара

Type

Текстовый

Тип товара


 

Ключевое поле: Code. По нему будет сформирована связь с таблицей Products.

 

 

Таблица «Products»

 

Рисунок 7

 

Свойства таблицы в конструкторе:

Имя поля

Тип данных

Описание

Code

Счётчик

Код товара

Type

Числовой

Код типа товара

Caption

Текстовый

Название товара

Description

Текстовый

Описание товара

Price

Денежный

Цена товара


 

Ключевое поле: Code. Но здесь это не играет функциональной роли.

 

      1. Схема данных

В схему данных добавляем обе таблицы и перетягиваем поле Type таблицы Products на поле Code таблицы Categories. Устанавливаем связь типа «один ко многим».

Рисунок 8

Запрос «products_all»

Этот запрос нужен для главной таблицы в программе.

    

Рисунок 9

 

    1. Выбор языка и среды программирования

Данная программа написана в среде программирования VisualStudio 2010 на языке C#. Выбранная среда содержит богатый набор различных типов данных и компонентов, облегчающих создание программного продукта под MS Windows.

Краткость языка, легкость программирования на нем, мобильность написанных программ, возможность эффективной реализации и пригодность с точки зрения формальных методов отладки программ обеспечили языку C# и конкретно среде Visual Studio 2010 успех в тех делах, для которых он предназначался.

    1. Подключение базы данных в Visual Studio 2010 .NET

Для работы с базой данных в среде VisualStudio 2010 необходимо зайти в меню «Данные\Добавить новый источник данных». Далее появится мастер настройки источника данных.

Рисунок 10

Выбираем «База данных», нажимаем кнопку «Далее». Выбираем «набор данных» и снова нажимаем далее. Нажимаем кнопку «Создать подключение», в появившемся окне, после нажатия кнопки «Обзор», выбираем наш файл базы данных с компьютера (DataBase.mdb) и нажимаем «ОК» и «Далее». В следующем окне отмечаем все компоненты нашей быза данных и нажимаем кнопку «Готово».

 

 

    1. Интерфейс программы

Рисунок 11

Главная форма.

Обозначения:

  1. groupBox1 (GroupBox) – область группировки элементов интерфейса;
  2. label1, label2, label3, label4 (Label) – подписи полей ввода;
  3. cbType (ComboBox) – выпадающий список категорий товара;
  4. tbCaption (TextBox) – поле ввода и вывода названия товара;
  5. tbDescription (TextBox) – поле ввода и вывода описания товара;
  6. tbPrice (TextBox) – поле ввода и вывода цены товара;
  7. bNewType (Button) – кнопка, по нажатии которой отображается окно ввода новой категории товара;
  8. bNew (Button) – кнопка, по нажатии которой производится очистка полей ввода и блокировка остальных кнопок, для ввода информации о новом товаре. После ввода активируется кнопка «Добавить» (bNewAdd);
  9. linkLabel1 (LinkLabel) – ссылка на окно с информацией о программе;
  10. bSearch (Button) – кнопка, позволяющая начать поиск по БД;
  11. bSearchReset (Button) – кнопка, возвращающая программу из режима поиска в обычное состояние;
  12. bNewAdd (Button) – кнопка, по нажатии которой в БД добавляется новая запись о товаре. Если какое-либо поле не заполнено или заполнено неверно, будет показано сообщение;
  13. bDel (Button) – кнопка, по нажатии которой из БД удаляется выбранная в DataGridView запись. Если записей нет – кнопка будет заблокирована;
  14. bSave (bSave) – кнопка, по нажатии которой в БД сохраняются изменения информации о товаре. Если какое-либо поле не заполнено или заполнено неверно, будет показано сообщение;
  15. dgv_admin (DataGridView) – таблица, в которой отображаются записи обо всех товарах;
  16. FormAdmin (Form) – главная форма приложения.

Информация о работе Разработка автоматизированной системы «Магазин бытовой техники»