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




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

Запустим VB2010 и закажем новый проект шаблона Windows Forms Application, укажем имя проекта— BD_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 узлы объектов базы, показанные на рис. 9.8.

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

 

Теперь перетащим узел БД телефонов из окна Data Source в проект экран­ной формы. При этом некоторые элементы управления автоматически доба­вятся в форму, также будут созданы некоторые компоненты и добавлены в область компонентов под формой. Появится элемент управления DataGridView, который будет отображать строки и столбцы таблицы, и эле­мент управления для переходов (AddressesBindingNavigator). Кроме того, система создает компоненты, которые подключаются к базе данных, управ­ляют извлечением и обновлением данных и хранят данные в локальном объекте DataSet (AddressesBindingSource, AddressesTableAdapter и FirstDatabaseDataSet соответственно).

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

 

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

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

Как видите, мы не написали ни одной строчки программного кода. Среда VB2010 автоматически сгенерировала программный код для управления

представляемой программой. Этот программный код можно просмотреть, открыв файл проекта Form 1.Designer.vb.

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

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

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

DataSet И DataReaders МОЖНО просмотреть результаты запроса.

Здесь и далее мы рассмотрим четыре основных действия над базой данных:

select (выборка записей из таблицы БД), insert (вставка записей), update

(модификация записей в таблице БД), Delete (удаление некоторых записей из таблицы).

Для этого запустим VB2010 и щелкнем на пункте New Project. Форма нам в данном случае не нужна, поэтому выбираем шаблон Console Application. Мы хотим вывести на экран простейшим способом таблицу. Если мы будем вы­водить ее при помощи функции MessageBox.show, то ровных колонок в окне MessageBox.show мы не получим, поскольку буквы, реализованные в этой функции, имеют разную ширину. Обычно в этом случае для вывода таблиц используют шрифт Courier New или Consolas, но объект MessageBox не содер­жит возможностей смены шрифта (также как и MsgBox). Поэтому, идя по са­мому короткому пути, выводим таблицу из базы данных на консоль, т. е. на черный экран DOS. Здесь реализован моноширинный шрифт, где все симво­лы имеют одинаковую ширину. Например, буква "Ш" и символ "." (точка) имеют одинаковую ширину, следовательно, колонки в построенных таблицах будут ровными.

Теперь на вкладке Modulel.vb напишем текст программы из листинга 9.1.

 

Как видно, вначале создаем объект connection и передаем ему строку соеди­нения. В строке соединения полный доступ к MDB-файлу заключен в двой­ные кавычки. Это сделано для того, чтобы корректно читались длинные име­на папок и файлов, содержащие пробелы.

Далее создаем объект command и передаем ему простейшую SQL-команду:

Select * From [БД телефонов]

То есть выбрать все записи из таблицы [БД телефонов]. Название таблицы в SQL-запросе заключено в квадратные скобки из-за пробела в имени таблицы. Заметьте, что в комментарии указаны возможные варианты SQL-запроса: сортировать записи по колонке ФИО (order by фио) и по колонке (order by 'Номер п/п').

Затем, используя объект DataReader, выполняем SQL-команду. В коммента­рии указано, что при этом можно было бы закрыть соединение cioseConnection. Далее в цикле построчно читаем таблицу базы данных. При работе DataReaders в памяти хранится только одна строка (запись) данных.

Объект DataReaders имеет булеву функцию Read, которая возвращает True,

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

Результат работы программы показан на рис. 9.10.

Рис. 9.10. Отображение таблицы базы данных на консоли

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

Убедиться в работоспособности программы можно, открыв решение DataReaderBDl.sIn в папке DataReaderBD 1.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: