Технология ADO.NET

Автор работы: Пользователь скрыл имя, 13 Апреля 2012 в 22:01, курсовая работа

Описание

Технология ADO.NET предназначена для обеспечения доступа к данным в слабосвязанных n-уровневых архитектурах приложений, включая веб-службы [[3]]. ADO.NET позволяет обращаться к разнообразным источникам данных, как базы данных различных поставщиков (MS SQL Server, Oracle, MS Access), так и другие источники данных (MS Excel, Outlook, текстовые файлы). Для программирования баз данных SmartDevice, имеющих по определению ограниченную функциональность, наибольшее значение имеют текстовые форматы данных и данные отсоединенных наборов (DataSet). Набор данных не содержит информации об источнике данных, из которого он наполнялся. В результате можно сохранять набор данных как XML-документ и наполнять его данными как из XML- документа, так и текстового файла. Несмотря на это, каждый поставщик данных обязан предоставлять следующие отсоединенные классы:

Работа состоит из  1 файл

Технология ADO.NET.doc

— 100.00 Кб (Скачать документ)

Технология 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

 
Рис. 1.1.  Подключение к источникам данных

Далее следует  просмотреть свойства подключенных файлов и скопировать содержание строки подключения (ConnectionString) – рис.1.2. Дело в том, что разные провайдеры имеют разный синтаксис строки подключения, по-этому чтобы не гадать, точнее – чтобы не нарываться на исключения при тестировании приложения, лучше довериться генератору строки в MS Visual Studio.

 
Рис. 1.2.  ConnectionString в окне просмотра свойств подключения к файлу

Шаг 3. Разработка графического интерфейса приложения

Для программы  используются одна форма (Form1), на которой  размещено окно DataGrid для просмотра данных таблиц, две кнопки подключения к источникам данных и Главное меню (mainMenu) с единственной опцией "О программе". Примерный дизайн которых показан на рис.1.3.

 
Рис. 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; 

private void button1_Click(object sender, System.EventArgs e)

{// Создаем соединение

System.Data.OleDb.OleDbConnection Коннект=new OleDbConnection();

// Задаем параметры  строки соединения

Коннект.ConnectionString= "Data Source=Платежные_поручения.mdb;"+

"Provider=Microsoft.Jet.OLEDB.4.0";

/* А вот это  копия строки соединения, сгенерированная  редактором MS Visual Studio:

Jet OLEDB:Global Partial Bulk Ops=2; Jet OLEDB:Registry Path=;

Jet OLEDB:Database Locking Mode=1;

  Data Source= Платежные_поручения.mdb;

Jet OLEDB:Engine Type=5; Provider=Microsoft.Jet.OLEDB.4.0;

Jet OLEDB:System database=; Jet OLEDB:SFP=False;

  persist security info=False;   

Extended Properties=; Mode=Share Deny None;

  Jet OLEDB:Encrypt Database=False;

Jet OLEDB:Create System Database=False;

Jet OLEDB:Don't Copy Locale on Compact=False;

Jet OLEDB:Compact Without Replica Repair=False;  

User ID=Admin; Jet OLEDB:Global Bulk Transactions=1

Можно видеть, что  принципиально важными являются два параметра – источник данных и провайдер, остальные принимаются по умолчанию. */

/* Формируем  SQL – запрос к данным таблицы  "Контакты". В нашем случае  выбираются все поля и записи  таблицы */

OleDbDataAdapter da =

new OleDbDataAdapter ("select * from контакты", Коннект);

// Создаем таблицу для данных

DataTable dt =new DataTable();

/* таблице присваиваем  имя, чтобы программно определить  свойства DataGrid */

dt.TableName="Контакты";

da.Fill(dt); // Заполняем  таблицу данными из адаптера

//привязываем элемент  просмотра данных программно

dataGrid1.TableStyles.Clear(); // чистим стиль элемента

// стиль грид  делаем программно

DataGridTableStyle ts= new DataGridTableStyle();

// стиль будет  разработан для таблицы "Контакты"

ts.MappingName="Контакты";   

DataGridTextBoxColumn cs=new DataGridTextBoxColumn();

cs.MappingName="Код"; // для столбца "Код"

cs.HeaderText="Код"; // Заголовок столбца – тоже "Код"

cs.Width=30; // ширина  столбца 30 пикселей

cs.NullText="";

ts.GridColumnStyles.Add(cs); // добавили в стиль столбцов 

// форматируем  второй столбец

cs=new DataGridTextBoxColumn();

cs.MappingName="Контакты"; // имя столбца "Контакты"

cs.HeaderText="Контакты";

cs.Width=240;

cs.NullText="";

ts.GridColumnStyles.Add(cs);

//  добавляем в стиль DataGrid   

this.dataGrid1.TableStyles.Add(ts);

dataGrid1.DataSource=dt.DefaultView; // Смотрим, что получилось

}

Шаг 6. Создаем процедуру  для кнопки подключения  к данным файла Excel

private void button2_Click(object sender, System.EventArgs e)

{// создаем соединение  с помощью драйвера ODBC

System.Data.Odbc.OdbcConnection Коннект=new OdbcConnection();

Коннект.ConnectionString= "Provider=MSDASQL.1;"+

      "DSN=Excel Files;"+ 

      "DBQ=Копия ADO_NET.xls";

/* А это копия  строки подключения. Почувствуйте  разницу:

Provider=MSDASQL.1;

  Persist Security Info=False;

  Extended Properties="DSN=Excel Files";

  DBQ=F:\LEOPOLD\ADO_NET\ADO_NET.xls;

  DefaultDir=F:\LEOPOLD\ADO_NET;

  DriverId=790;

  MaxBufferSize=2048;

  PageTimeout=5;

  Initial Catalog=F:\LEOPOLD\ADO_NET\ADO_NET

*/

/* обратите внимание  – в SQL – запросе к листу книги "Содержание" указывается диапазон ячеек через знак $ */

OdbcDataAdapter da =

new OdbcDataAdapter ("select * from [Содержание$A1:A33]",Коннект);

// дальше все  аналогично, как в процедуре доступа  к файлу Access

DataTable  dt =new DataTable();

dt.TableName="Содержание";

da.Fill(dt);

//привязываем

dataGrid1.TableStyles.Clear();

// стиль грид делаем программно

DataGridTableStyle ts= new DataGridTableStyle();

ts.MappingName="Содержание";

DataGridTextBoxColumn cs=new DataGridTextBoxColumn();

cs.Width=270;

/* Здесь тонкость  – в запросе не поддерживается  точка, вместо нее генерируется # */

cs.MappingName="ADO#NET для SmartDevice:";

// а заголовок  столбца поменяем на правильный

cs.HeaderText="ADO.NET для SmartDevice:";

cs.NullText="";

ts.GridColumnStyles.Add(cs);

this.dataGrid1.TableStyles.Add(ts);

dataGrid1.DataSource=dt.DefaultView;

}

Результат работы кнопок показан на рис. 1.4 и 1.5

 
Рис. 1.4.  Загруженные данные из MS Access

 
Рис. 1.5.  Загруженные данные из MS Excel

Шаг 7. Создаем процедуру  для опции главного меню "О программе"

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

private void menuItem1_Click(object sender, System.EventArgs e) {

MessageBox.Show("Создание  соединения с источником данных\n"+

      "и  установка строки связи.\n"+

      "Байдачный С.С., NET Framework. М., \n"+

      "Солон-Пресс, 2004, с. 386\n"+

      "Гамильтон  Б. ADO.NET для профессионалов \n"+

      "СПб., Питер, 2005, с.25","Подробнее...");

}


Информация о работе Технология ADO.NET