ADO.NET и доступ к данным
Технология ADO.NET предназначена для обеспечения доступа к данным в слабосвязанных n-уровневых архитектурах приложений, включая веб-службы [ [ 3 ] ]. ADO.NET позволяет обращаться к разнообразным источникам данных, как базы данных различных поставщиков (MS SQL Server, Oracle, MS Access), так и другие источники данных (MS Excel, Outlook, текстовые файлы). Для программирования баз данных SmartDevice, имеющих по определению ограниченную функциональность, наибольшее значение имеют текстовые форматы данных и данные отсоединенных наборов (DataSet). Набор данных не содержит информации об источнике данных, из которого он наполнялся. В результате можно сохранять набор данных как XML-документ и наполнять его данными как из XML- документа, так и текстового файла. Несмотря на это, каждый поставщик данных обязан предоставлять следующие отсоединенные классы:
- Connection – уникальный сеанс подключения к источнику данных;
- Command – команды выполнения SQL-операторов и процедур обработки данных;
- DataReader – последовательный доступ чтения потока результата запроса;
- DataAdapter – наполнитель отсоединенного набора (DataSet) и редактор источника данных в соответствии с изменениями, произведенными в отсоединенном наборе
Рассмотрим, как реализуется с помощью ADO.NET доступ к данным MS Access и MS Excel.
Задача темы: изучить методику и получить навыки в разработке функциональности приложений, использующих технологию ADO.NET для загрузки данных из файлов MS Access и MS Excel в форму С# для просмотра.
Разработка: Приложение "Connection" для автоматического подключения к базам данных в форматах mdb и xls.
Состав выполняемых функций:
- Файловые операции: импорт данных из файлов MS Access и MS Excel в форму С# через строку подсоединения для просмотра
- Алгоритмы: программное изменение свойств элемента Windows, предназначенного для просмотра данных
- Информационно-справочные: О программе
Наращивание функциональности не предусматривается.
Защита данных не предусматривается.
В качестве входных данных используются два тестовых файла - MS Access и MS Excel. Выходные данные программы – графическое отображение результатов в виде элемента табличного просмотра данных экранных форм для WindowsApplication
Шаг 1. Организация дискового пространства и источников данных
Необходимо создать каталог на диске, в который скопировать или создать заново базу данных MS Access и таблицу MS Excel. В нашем примере, каталог – ADO_XLS, в котором размещается приложение С# WindowsApplication. Файлы MS Access и Excel размещаются в каталоге \ADO_XLS\bin\Debug. В базе данных Access "Платежные поручения.mdb" присутствует таблица "Контакты" из двух полей: Код и Контакты, число записей в таблице – три, хотя это непринципиально. В файле Excel "Копия ADO_NET.xls" содержится лист "Содержание" с заполненным столбцом А и числом строк – 22, здесь диапазон строк имеет значение.
Шаг 2. Тестируем подключение к источникам данных
Подключение к источникам данных организуется на настольном компьютере с помощью различных драйверов. Для Access должен присутствовать драйвер Microsoft.Jet.OLEDB.4.0, а для Excel – Microsoft OLE DB Provider for ODBC Drivers. В MS Visual Studio 2003 рекомендуется предварительно проверить подключение к источникам данных с помощью этих драйверов. Для этого в главной линейке меню выбираются опции: Сервис -> Подключение к базам данных -> Поставщики -> Microsoft.Jet.OLEDB.4.0 Provider -> Выбирается файл "Платежные поручения.mbd" -> Проверить подключение – для подключения к файлу Access. Аналогично – для Excel, только провайдер указывается уже другой.
Если тестирование успешно, то в обозревателе серверов (Вид -> Обозреватель серверов) будут видны файлы, к которым выполнено подключение - рис.1.1
Далее следует просмотреть свойства подключенных файлов и скопировать содержание строки подключения (ConnectionString) – рис.1.2. Дело в том, что разные провайдеры имеют разный синтаксис строки подключения, по-этому чтобы не гадать, точнее – чтобы не нарываться на исключения при тестировании приложения, лучше довериться генератору строки в MS Visual Studio.
Шаг 3. Разработка графического интерфейса приложения
Для программы используются одна форма ( Form1 ), на которой размещено окно DataGrid для просмотра данных таблиц, две кнопки подключения к источникам данных и Главное меню ( mainMenu ) с единственной опцией "О программе". Примерный дизайн которых показан на рис.1.3.
Шаг 4. Расширяем состав библиотек формы 1
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms;
/* добавляем библиотеки подключения к источникам данных. Отметим, что данные библиотеки не доступны для SmartDeviceApplication, поэтому мы и создаем WindowsApplication для настольной компьютерной системы */
using System.Data; using System.Data.Odbc; using System.Data.OleDb;