Главная » C# » Разработка базы данных с помощью Visual С# Express

0

Среда Visual С# Express очень хорошо оснащена для разработки и создания прилений баз данных. В ней имеются инструменты для проектирования баз данных, управления подключениями и контроля доступа к данным.

Visual С# Express позволяет прямое  интегрирование драйверов  ADO.NET только для реляционных баз данных корпорации Microsoft. Но это не означает, что нельзя использовать драйверы ADO.NET для других баз данных. Это возможно, но только посредством написания соответствующего кода. Если же вы хотите воспользоватя инструментами графического интерфейса для драйвера базы данных иной, нежели поставки Microsoft, то вам нужно обновить среду разработки до  версии Visual Studio. Для примеров, рассматриваемых в этой главе, применяется драйвер Microsoft SQL Server Compact Edition.

Средства поддержки баз данных на основе графических инструментов можно давить к любому типу проекта на языке С#. Для примера этой главы мы использм проект консольного приложения DatabaseConsoleEx.

Создав  проект консольного  приложения (следуя  процедуре,  описанной  в главе  1), мы можем приступить к созданию базы данных и добавлению таблиц в нее.

Конфигурирование источника данных

В Visual С# Express добавить базу данных в качестве источника данных, организать  подключение к базе данных и выбрать объекты базы данных для  включения в проект можно с помощью Data Source Configuration Wizard (Мастер конфигурирания источников данных). Для использования мастера выполните следующие шаги:

1. Чтобы   запустить   мастер   конфигурирования,   выберите   последовательность команд меню Data | Add New Data Source.

2. Выберите Database в качестве источника данных и нажмите кнопку Next.

3. Откроется окно, предлагающее выбрать подключение к базе данных. При выбе подключения к базе данных мы определяем настройки подключения к нашей реляционной базе данных. Так как в этом примере мы создаем новую базу даых, нажмите кнопку New Connection.

4. В  открывшемся  диалоговом  окне  Add  Connection  введите  имя  базы  данных и  пароль  доступа  к  ней.  Для  данного  примера  имя  базы  данных будет  lottery, а пароль — lotto.12. Visual С# Express автоматически добавит к имени файла расширение sdf, указывая, что это файл SQL Server (рис. 14.2). Нажмите кнопку ОК , чтобы добавить подключение.

ПРИМЕЧАНИЕ

Если  выбранный  пароль  короче,  чем  шесть  символов,  не  содержит  цифру  и  знака препинания,  то  будет  выведено  предупреждение  о  с’лабом  пароле.  Это  не  предот-

вращает использование выбранного пароля, просто Visual С# Express советует вам использовать сильный пароль. Сильный пароль — это пароль,  который  трудно  угать. Например, если вашего домашнего любимца звать  Кеша,  а  марка  машины — Opel, то сильный пароль можно создать, объединив эти два имени в Кеша.Opel.

Рис. 14.2. Добавления подключения к базе данных

5. Чтобы убедиться, что подключение было создано, нажмите кнопку Test Connec- tion. Если вы строго следовали инструкциям, то будет выведено сообщение об успехе  проверки.  (В  случае  неудачной  проверки,  создайте  новую базу данных с новым именем файла и паролем и опять выполните проверку подключения.) Нажмите кнопку ОК.

6. Снова будет выведено диалоговое окно Choose Your Data Connection, но с золненным полем подключения и отключенной  кнопкой  Next  (рис. 14.3). Теперь необходимо разобраться с паролем для доступа к базе данных. Нам предлагаются две опции: написать код для передачи пароля подключению или вставить пароль в строку подключения. Для промышленного приложения прильным выбором был бы первый, чтобы строка подключения не содержала уязвимых данных, которыми является пароль. Но для нашего простого примера безопасность не является самой главной заботой, поэтому упростим себе немно работу и выберем опцию пароля, вставленного в строку подключения. После этого станет доступной кнопка Next. Нажмите ее.

7. Так как для примера используется драйвер SQL Server Compact Edition, то будет выведено окно  (рис. 14.4),  запрашивающее,  следует ли скопировать  файл базы данных в проект. Соглашаемся, нажав кнопку Yes.

Рис. 14.3. Выбор способа передачи пароля

Рис. 14.4. Добавление файла базы данных в проект

Рис. 14.5. Выбор объектов базы данных в Visual С# Express

8. Далее запрашивается, добавить ли в проект конфигурационную информацию приложения. Тоже соглашаемся, нажимая кнопку Next.

9. Выводится окно Choose Your Database Objects (Выберите объект  базы  даых). Так как мы имеем дело с файлом SQL Server Compact Edition, который па не содержит таблиц, в окне  предлагается  только  один  объект  Tables (на рис. 14.5). Если бы мы создавали подключение к уже существующей реляциоой базе данных, то были бы доступными другие объекты базы данных. Выбите объект Tables и нажмите кнопку Finish.

После этого Visual С# Express перекомпилирует проект. По завершении компилии, структура проекта должна быть подобна показанной на рис. 14.6.

Рис. 14.6. Модификации, внесенные в проект средой Visual С# Express

Проект Visual С# Express содержит ссылку на файл, предоставляемый сервером Microsoft SQL Server Compact Edition. Как было показано на рис. 14.1, сервер базы данных является просто процессом, доступ к которому выполняется посредством библиотеки клиента. Это справедливо приблизительно в 80% случаев, но также существует класс серверов баз данных на основе файлов. Этот тип баз данных иользуется  в  более  простых  приложениях  баз  данных  для  одного  пользователя. В нашем примере применяется база данных на основе файла. Но с точки зрения программирования ничего не меняется и исходному коду даже не требуется знать, является ли база данных файлом или серверным процессом.

Добавление таблиц

В среде Visual С# Express  таблицы в базу данных можно добавлять с помощью Database  Explorer.   Этот  же  инструмент  применяется  и  для  модификации   всех

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

1. Щелкните правой  кнопкой мыши по файлу lottery.sdf в Solution Explorer и  верите команду Open, чтобы открыть Database Explorer.  Database Explorer отражает информацию о базе данных (рис. 14.7).

2. Щелкните правой кнопкой мыши по узлу Tables и выберите команду Create Table; откроется диалоговое окно New Table (рис.  14.8).

Рис. 14.7. Просмотр структуры базы данных в Database Explorer

Рис. 14.8. Создание новой таблицы

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

Каждый столбец таблицы должен иметь имя и тип. Подобно С#, в базах данных также применяются типы. Но усложняет программисту жизнь то обстоятельство, что типы базы данных похожи, но не точно такие же, как в С#. Если этого мало, то в разных видах баз данных типы слегка отличаются друг от друга. К счастью, если у вас имеются инструменты Visual Studio, то  специальный  мастер  соотнесет тип базы данных с соответствующим типом в С#.

Для данного примера мы создадим три таблицы: draws (розыгрыши), person s (ли) и winners (выигравшие). В следующих разделах описываются  столбцы  и  их типы для каждой из этих таблиц. Мы будем работать с типами данных Microsoft SQL Server.

СОВЕТ

Документация Visual Studio содержит отличную справочную информацию  о  разных тах данных и их точности. См. разд. "Data  Types"  в  документации  Microsoft  SQL  Server Books   Online   (http://msdn2.microsoft.com/en-us/library/ms130214.aspx).

Таблица draws

Таблица draws содержит выигрышные номера всех розыгрышей. Имена столбцов для этой таблицы и типы данных столбцов показаны в табл. 14.1.

Таблица     14.1.     Столбцы     таблицы     draws

Имя

Тип

draw_dat e

datetim e

first_numbe r

in t

second_numbe r

in t

third_numbe r

in t

fourth_numbe r

in t

f i f th_numbe r

in t

s  ixth_numbe r

in t

bonu s

in t

В столбце draw_date хранится дата розыгрыша. Тип данных столбца draw_date объявлен datetime , который подобен типу datetim e в .NET. Но, как было изложо в главе 3, при соотношении типов необходимо соблюдать осторожность.

Остальные столбцы таблицы представляют номера розыгрыша, включая бонусный номер. Как и в С#, сервер SQL Server имеет различные числовые типы. Тип значий, хранящихся в столбцах номеров розыгрышей, объявлен как int .

ПРИМЕЧАНИЕ

SQL Server имеет один числовой тип, для которого в NET нет соответствующего типа. Это тип numeric . Данный тип  подобен  типу  decima l  в  .NET за  исключением  точнти. Для типа numeri c можно указывать количество знаков до и после десятичного разделителя.

Таблица persons

В таблице person s хранится информация о людях, выигравших лотерейные розрыши.  Имена  столбцов  для  этой  таблицы  и  типы  данных  столбцов  показаны в табл. 14.2.

Таблица     14.2.      Столбцы     таблицы    persons

Им я

Тип

i d

u n i q u e i d e n t i f i e r

first_nam e

nvarchar(100 )

last_nam e

nvarchar(10 0

Проблемой реляционных баз данных является уникальная идентификация каждой записи. Большинство баз данных для решения этой  проблемы  используют числа. Но когда база данных содержит миллионы записей, то число может не отвечать требованиям уникального идентификатора. В таком случае можно воспользоваться типом SQL Server uniqueidentifier , как сделано для столбца id таблицы persons.

Тип столбцов first_nam e и last_name определен как nvarcha r (100). Строки в базе данных подобны числовым типам в том, что они имеют предельный размер. В даом случае тип nvarcha r (100) указывает строку переменной длины с максималым количеством в 100 символов. Для сравнения, применение типа char (100) укывало бы строку постоянной длины в 100 символов, независимо от того, сколько символов строка содержит в действительности. Если введенная строка содержит меньшее число символов, чем отведенное для нее место в столбце, то остаток поля по умолчанию заполняется пробелами.

Таблица winners

Таблица winners служит для соотнесения номеров розыгрыша с владельцами вгравших билетов. Имена столбцов для этой таблицы и типы данных столбцов пазаны в табл. 14.3.

Таблица      14.3.       Столбцы      таблицы       winners

Им я

Тип

i d

u n i q u e i d e n t i f i e r

draw_dat e

datetim e

Тип  каждого столбца соответствует типу одноименного столбца в таблицах draws и persons. Идея заключается в использовании таблицы winners совместно с таблами draws и persons, чтобы создать список, указывающий, кто выиграл в каком розыгрыше.

После   создания   все   трех   таблиц   структура   базы   данных   должна   выглядеть в Database Explorer так, как показано на рис. 14.9.

Рис. 14.9. Структура базы данных после добавления в нее трех таблиц

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

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии