Главная страница

лекция. Зиборов. Справочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги


Скачать 7.39 Mb.
НазваниеСправочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги
Анкорлекция
Дата13.04.2023
Размер7.39 Mb.
Формат файлаdoc
Имя файлаЗиборов.doc
ТипСправочник
#1060897
страница13 из 31
1   ...   9   10   11   12   13   14   15   16   ...   31
ГЛАВА 10 Обработка баз данных с использованием технологии ADO.NET

Пример 63. Создание базы данных SQL Server

Покажем, как можно создать базу данных SQL Server в среде Visual Studio 2010. В этой простейшей базе данных будет всего одна таблица, содержащая сведения о телефонах ваших знакомых, т. е. в этой таблице будем иметь всего три колонки: Имя, Фамилия и Номер телефона.

Запустим Visual Studio 2010, закажем новый проект шаблона Windows Forms Аpplication С#, зададим имя — BД_SQL_Server. Далее непосредственно создадим новую базу данных SQL Server. Для этого в пункте меню Project выберем команду Аdd New Item (т. е. добавить новый элемент) и в появившемся одноименном окне укажем шаблон Local Database (локальная база данных), введем имя файла (в поле Name) Vic.sdf и последовательно щелкнем на кнопках Add, Next, Finish.

Теперь добавим таблицу в базу данных, для этого в пункте меню View выберем команду Server Explorer (Обозреватель баз данных). В обозревателе баз данных развернем узел (щелчком мыши) Vic.sdf и выберем Tables (Таблицы). Щелкнем правой кнопкой мыши на пункте Tables, а затем выберем пункт Create Table (Создать таблицу). Откроется окно New Table. Назовем новую таблицу (поле Name) БД телефонов. Заполним структуру таблицы, как показано на рис. 10.1. Нажмем кнопку ОК, чтобы создать таблицу и закрыть окно New Table. Чтобы исключить повторяющиеся записи (т. е. строки в таблице), следует на­учить первичные ключи (или ключевые столбцы). Ключевым столбцом назначачают столбец в таблице, который всегда содержит уникальные (неповторяющиеся в данной таблице) значения. Однако в нашей таблице могут быть люди с одинако­вый именами или одинаковыми фамилиями, т. е. в нашей таблице в качестве пер­ечных ключей следует использовать одновременно два столбца: столбец Имя и столбец Фамилия. Представьте себе, что у нас уже есть сотни записей в таблице, и при попытке ввести вторую строку, содержащую то же самое значение, появляется сообщение об ошибке. Это очень технологично, удобно!



Рис. 10.1. Формирование структуры новой таблицы

Чтобы добавить первичные ключи в таблицу, в Server Explorer развернем yзел Tables. Далее щелкнем правой кнопкой мыши на нашей только что созданной таблице и выберем пункт Edit Table Schema, затем для полей Имя и Фамилия укажем для параметра Allow Nulls значение No, т. е. обяжем нашего пользователя всегда заполнять эти поля (ячейки таблицы). Далее для параметра Unique (Являются ли эти поля уникальными?) ответим No, поскольку и имена, и фамилии повторяются. И, наконец, назначим колонки Имя и Фамилия первичными ключами (Primari KeyYes). Нажмем кнопку OK для сохранения этих настроек и закрытия okhа Edit Table - БД телефонов.

Теперь добавим данные в таблицу. Для этого в окне Server Explorer щелкнем правой кнопкой мыши на пункте БД телефонов и выберем команду Show Tabl Data. Откроется но данных таблицы, как показано на рис. 10.2, но только пока пустое.



Рис. 10.2. Заполнение ячеек таблицы

Далее заполним данную таблицу. Для нашей демонстрационной цели введем пять строчек в эту таблицу. После ввода в меню File выберите команду Save All длясохранения проекта и базы данных. Теперь убедитесь, что в папке проекта по­вился файл Vic.sdf. Его можно открыть вне проекта с помощью Microsoft Visual Studio 2010 для редактирования базы данных.

Пример базы данных можно найти в папке БД_SQL_Server.

Пример 64. Отображение таблицы базы данных SQL Server в экранной форме

Имея базу данных, например базу данных SQL Server, в виде файла Vic.sdf, созданного в предыдущем разделе, покажем, как очень легко можно вывести таб­лицу из этой базы в экранную форму.

Для этой цели запустим Visual Studio 2010, закажем новый проект шаблона Windows Application С# и укажем имя проекта — БД_SQL_Server2. Далее в меню View выберем команду Server Explorer. Щелкнув правой кнопкой мыши на значке Data Connections, добавим соединение — Add Connection, а в качестве источника данных Data source укажем Microsoft SQL Server Compact 3.5 и щелкнем на кнопке ОК. Далее, нажмем кнопку Browse, найдем созданный в прошлом проекте файл базы данных Vic.sdf и нажмем кнопку ОК. Теперь в окне Server Explorer мы видим значок базы данных Vic.sdf.

Далее в меню Data выберем команду Add New Data Source, тем самым мы запустим мастер Data Source Configuration Wizard. Здесь последовательно нажима­ем кнопки Next, Dataset, Next. На запрос мастера копировать ли файл Vic.sdf в наш текущий проект нажмем кнопку Да.

В результате в окне Solution Explorer появится значок базы данных Vic.sdf и значок объекта vicDataSet.xsd, но база данных в текущем проекте будет пустой. Для заполнения базы данных в меню Data укажем Show Data Source и в появив­шемся окне Data Source, щелкнув правой кнопкой мыши на значке vicDataSet, вы­берем пункт Configure Data Source With WizardFinish. Теперь из окна Server Explorer перетащим узел БД телефонов на появившуюся вкладку vicDataSet.xsd. Затем из окна Data Source перетащим узел БД телефонов на вкладку конструктора формы Form1.cs[Design]. Как видно из рис. 10.3, автоматически появилось не­сколько программных объектов, необходимых для отображения данных из табли­цы базы данных.

Заметьте, мы пока не написали ни одной строчки программного кода. Теперь запускаем отладку программы — нажимаем клавишу <F5>.

Как видим (рис. 10.4), в форме благодаря элементам управления DataGridView и BindingNavigator появилось отображение таблицы из базы данных. Мы имеем возможность модифицировать существующие записи (строки), добавлять новые записи (New), удалять записи из таблицы (Delete), сохранять данные (Save Data) с помощью соответствующих кнопок. То есть имеем полный набор основных четырех функций по редактированию таблицы базы данных.



Рис. 10.3. Проект формы с объектами для отображения таблицы базы данных



Рис. 10.4. Фрагмент работы программы

Убедиться в работоспособности данной программы можно, открыв файл решения БД_SQL_Server2.sln в папке БД_SQL_Server2. Обратите внимание на то, что копия исходной базы данных Vic.sdf находится в папке проекта bin\Debug, именно этот файл претерпевает изменения при редактировании таблицы в данном проекте

Создание базы данных в среде MS Access

Вначале создадим базу данных (БД) vic.mdb средствами Access пакета MS Office. Поясню сразу, что реальный положительный эффект от решения какой-либо задачи информатизации с использованием баз данных можно ощутить, если коли чество записей (т. е. количество строк в таблице) превышает 100 тысяч. В этом случае очень важным (решающим) фактором оказывается скорость выборки. Однако для примера работы мы будем оперировать совсем маленькой БД. Чтобы читатель данной книги смог реально повторить наши действия, создадим базу данных телефонов ваших контактов.



Рис. 10.5. Заполнение таблицы базы данных в среде MS Access

Структура (поля) таблицы будет сдующей: Номер п/п, ФИО и Номер телефона. Для этого запустим на компьютере офисное приложение Microsoft Access, далее в меню Создать выберем команду Новая база данных (или нажимаем комбинацию клавиш <Ctrl>+<N>), зададим папку для размещения БД и имя файла— vic.mdb. Затем в появившемся окне viс: база данных выберем команду Создание таблицы в режиме конструктора. Далее зададим три поля (т. е. три колонки в будущей таблице): имя первого поля — Номер п/п, тип данных — Счетчик; следующее имя поля — ФИО, тип данных — Текстовый; третье имя поля — Номер телефона, тип данных — Текстовый.

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

Далее двойной щелчок в пределах созданной таблицы — и приступаем к ее за­полнению. В нашем примере в таблице всего семь записей (рис. 10.5).

Теперь закроем СУБД Access и откроем созданную нами таблицу БД vic.mdb в среде Visual Studio 2010.

Пример 65. Редактирование таблицы базы иных MS Access в среде Visual Studio без написания программного кода

Запупкаем Visual Studio 2010, однако далее мы не заказываем новый проект. Сейчас наша цель — открыть созданную нами базу данных в среде Visual Studio. Для этого выберем пункт меню View | Server Explorer. Здесь, щелкнув правой кнопкой мыши на значке Data Connections, выберем пункт Add Connection и в качестве источника данных (Data source), нажав кнопку Change, Microsoft Database File (OLE DB). Далее с помощью кнопки Browse зададим путь и например C:\vic.mdb. Теперь проверим подключение— кнопка Test Connection. Успешное подключение выдаст сообщение, представленное на рис. 10.6



Рис. 10.6. Тестирование подключения

Проверка подключения выполнена, щелкнем на кнопке ОК. Теперь в окне Server Explorer раскроем узлы, символизирующие базу данных, таблицы, поля в таблице.



Рис. 10.7. Редактирование таблицы базы данных в среде Visual Studio

Далее щелкнем правой кнопкой мыши на узле БД телефонов и выберем команду Retrieve Data. В результате в правом окне получим содержимое этой таблицы как показано на рис. 10.7. Здесь данную таблицу мы можем редактировать, т.е. изменять содержимое любой записи (Update), добавлять новые записи (Insert), т.е. новые строки в таблицу, удалять записи (Delete). Кроме того, щелкая правой кнопкой мыши в пределах таблицы и выбирая в контекстном меню пункты Panel SQL, можно осуществлять SQL-запросы к базе данных, в том числе наиболее часто используемый запрос Select.

Пример 66. Отображение таблицы базы данных MS Access в экранной форме

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

Запустим Visual Studio 2010 и закажем новый проект шаблона Windows Forms Application С#, укажем имя проекта— БД_mdb. Откроется новый проект Windows Forms. В пункте меню Data (Данные) щелкнем на пункте Add New Data Source, при этом запустится Data Source Configuration Wizard (Мастер настройки источников данных). Выберем Database (База данных) и нажмем кнопку Next. Да­лее после выбора модели Dataset и нажатия кнопки Next нажмем кнопку New Connection (Новое подключение).

Откроется диалоговое окно Add Connection (Добавить подключение). В этом диалоговом окне проверим, является ли источник данных (Data source) Microsoft Access Database File (OLE DB). Если нет, то нажмем кнопку Change и выберем Microsoft Access Database File в диалоговом окне Change Data Source, а затем нажмем кнопку ОК.

Щелкнув на кнопке Browse, перейдем в место сохранения базы данных vic.mdb, далее щелкнем на значке файла базы данных и на кнопке Открыть. На­жмем кнопку ОК, чтобы закрыть диалоговое окно Add Connection, затем в масте­ре настройки источников данных нажмем кнопку Next. Если будет предложено копировать файл данных в проект, нажмем кнопку Нет.

Опять нажмем кнопку Next. На следующей странице мастера необходимо уста­новить флажок возле всех объектов базы данных, при этом имя объекта DataSet будет vicDataSet. Нажмем кнопку Finish для продолжения. Перейдя в меню Data | show Data Sources, получим в окне Data Sources узлы объектов базы, показанные на рис. 10.8.

Теперь перетащим узел БД телефонов из окна Data Source в проект экранной формы, при этом можно использовать метод копирования — вставки (<Ctrl>+<C>, <Ctrl>+<V>). Заметьте, что некоторые элементы управления автоматически добавятся в форму, также будут созданы некоторые компоненты и добавлены в область компонентов под формой. Появится элемент управления DataGridView, который будет отображать строки и столбцы таблицы, и элемент управления для переходе (AddressesBindingNavigator). Кроме того, система создает компоненты, которые подключаются к базе данных, управляют извлечением и обновлением данных хранят данные в локальном объекте DataSet (AddressesBindingSource, Addresses. TableAdapter и FirstDatabaseDataSet соответственно).

Нажмем клавишу <F5> для запуска приложения. Данные из таблицы телефонов отображаются в элементе управления DataGridView в форме, как показано на рис. 10.9.



Рис. 10.8. Узлы объектов базы данных



Рис. 10.9.Отображение таблицы на элементе управления DataGridView

Можно использовать элементы управления в BindingNavigator в верхней части формы для перехода между строками, можно даже добавлять или удалять записи а также изменять записи, изменяя данные, отображаемые в сетке, но эти изменения не будут сохранены до тех пор, пока не будет нажата кнопка сохранения (Save Data).

Как видите, мы не написали ни одной строчки программного кода. Среда Visual Studio 2010 автоматически сгенерировала программный код для управления пред­ъявляемой программой. Этот программный код можно просмотреть, открыв файл проекта Form1.Designer.cs.

Убедиться в работоспособности программы можно, открыв файл решения БД_mdb.sln в папке БД_mdb.

Пример 67. Чтение всех записей из таблицы БД MS Access на консоль с помощью объектов классов Commandи DataReader

Напишем программу, которая минимальным количеством строк программного кода выводит на экран все записи (т. е. все строки) таблицы базы данных. При этом воспользуемся наиболее современной технологией ADO.NET. Технология ADO.NET— это преимущественно 4 объекта. Объект Connection обеспечивает соединение с базой данных. Объект Command обеспечивает привязку SQL-выражения к соединению с базой данных. А с помощью объектов DataSet и DataReaders можно просмотреть результаты запроса.

Здесь и далее мы рассмотрим четыре основных действия над базой данных: Select (выборка записей из таблицы БД), Insert (вставка записей), Update (моди­фикация записей в таблице БД), Delete (удаление некоторых записей из таблицы).

Для этого запустим Visual Studio 2010 и щелкнем на пункте New Project. Фор­ма нам в данном случае не нужна, поэтому выберем шаблон Console Application С#. Мы хотим вывести на экран простейшим способом таблицу. Если мы будем выводить ее при помощи функции MessageBox.show, то ровных колонок в окне MessageBox.show мы не получим, поскольку буквы, реализованные в этой функции, имеют разную ширину. Обычно в этом случае для вывода таблиц исполь­зуют шрифт Courier New или Consolas, но объект MessageBox не содержит возмож­ностей смены шрифта. Поэтому, идя по самому короткому пути, выводим таблицу из базы данных на консоль, т. е. на черный экран DOS. Здесь реализован моноши­ринный шрифт, где все символы имеют одинаковую ширину. Например, буква "Ш" и символ "." (точка) имеют одинаковую ширину, следовательно, колонки в постро­енных таблицах будут ровными. Теперь на вкладке Program.cs напишем текст программы из листинга 10.1.
1   ...   9   10   11   12   13   14   15   16   ...   31


написать администратору сайта