Технология ADO.NET предназначена для обеспечения доступа к данным в
слабосвязанных n-уровневых архитектурах приложений, включая
Connection – уникальный сеанс подключения к источнику данных;Command – команды выполнения SQL-операторов и процедур обработки данных;DataReader – последовательный доступ чтения потока результата запроса;DataAdapter – наполнитель отсоединенного набора (DataSet) и редактор источника данных в соответствии с изменениями, произведенными в отсоединенном набореРассмотрим, как реализуется с помощью ADO.NET доступ к данным MS Access и MS Excel.
Задача темы: изучить методику и получить навыки в разработке
функциональности приложений, использующих технологию ADO.NET для
загрузки данных из файлов
Разработка: Приложение "Connection" для автоматического
Состав выполняемых функций:
Наращивание функциональности не предусматривается.
Защита данных не предусматривается.
В качестве входных данных используются два тестовых файла - MS Access и MS Excel. Выходные данные программы – графическое отображение результатов в виде элемента табличного просмотра данных экранных форм для WindowsApplication
Шаг 1. Организация дискового пространства и источников данных
Необходимо создать каталог на диске, в который скопировать или
создать заново базу данных
Шаг 2. Тестируем подключение к источникам данных
Подключение к источникам данных организуется на настольном компьютере
с помощью различных драйверов. Для Access должен присутствовать
драйвер Microsoft.Jet.OLEDB.4.0, а для Excel – Microsoft
Если тестирование успешно, то в обозревателе серверов (Вид -> Обозреватель серверов) будут видны файлы, к которым выполнено подключение - рис.1.1
(рис 1.1) Подключение к источникам данныхДалее следует просмотреть свойства подключенных файлов и скопировать содержание строки подключения (ConnectionString) – рис.1.2. Дело в том, что разные провайдеры имеют разный синтаксис строки подключения, по-этому чтобы не гадать, точнее – чтобы не нарываться на исключения при тестировании приложения, лучше довериться генератору строки в MS Visual Studio.
(рис 1.2) ConnectionString в окне просмотра свойств подключения к файлуШаг 3. Разработка графического интерфейса приложения
Для программы используются одна форма ( Form1 ), на которой размещено
окно для просмотра данных таблиц, две кнопки подключения к
источникам данных и Главное меню ( 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;
Шаг 5. Создаем процедуру для кнопки подключения к данным файла Access
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";
/* А вот это копия
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();
/* таблице присваиваем имя, чтобы программно определить свойства */
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.5) Загруженные данные из MS Access(рис 1.4) Загруженные данные из 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 предназначена для обеспечения доступа к данным в
слабосвязанных n-уровневых архитектурах приложений, включая
Connection – уникальный сеанс подключения к источнику данных;Command – команды выполнения SQL-операторов и процедур обработки данных;DataReader – последовательный доступ чтения потока результата запроса;DataAdapter – наполнитель отсоединенного набора (DataSet) и редактор источника данных в соответствии с изменениями, произведенными в отсоединенном набореРассмотрим, как реализуется с помощью ADO.NET доступ к данным MS Access и MS Excel.
Задача темы: изучить методику и получить навыки в разработке
функциональности приложений, использующих технологию ADO.NET для
загрузки данных из файлов
Разработка: Приложение "Connection" для автоматического
Состав выполняемых функций:
Наращивание функциональности не предусматривается.
Защита данных не предусматривается.
В качестве входных данных используются два тестовых файла - MS Access и MS Excel. Выходные данные программы – графическое отображение результатов в виде элемента табличного просмотра данных экранных форм для WindowsApplication
Шаг 1. Организация дискового пространства и источников данных
Необходимо создать каталог на диске, в который скопировать или
создать заново базу данных
Шаг 2. Тестируем подключение к источникам данных
Подключение к источникам данных организуется на настольном компьютере
с помощью различных драйверов. Для Access должен присутствовать
драйвер Microsoft.Jet.OLEDB.4.0, а для Excel – Microsoft
Если тестирование успешно, то в обозревателе серверов (Вид -> Обозреватель серверов) будут видны файлы, к которым выполнено подключение - рис.1.1
(рис 1.1) Подключение к источникам данныхДалее следует просмотреть свойства подключенных файлов и скопировать содержание строки подключения (ConnectionString) – рис.1.2. Дело в том, что разные провайдеры имеют разный синтаксис строки подключения, по-этому чтобы не гадать, точнее – чтобы не нарываться на исключения при тестировании приложения, лучше довериться генератору строки в MS Visual Studio.
(рис 1.2) ConnectionString в окне просмотра свойств подключения к файлуШаг 3. Разработка графического интерфейса приложения
Для программы используются одна форма ( Form1 ), на которой размещено
окно для просмотра данных таблиц, две кнопки подключения к
источникам данных и Главное меню ( 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;
Шаг 5. Создаем процедуру для кнопки подключения к данным файла Access
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";
/* А вот это копия
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();
/* таблице присваиваем имя, чтобы программно определить свойства */
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.5) Загруженные данные из MS Access(рис 1.4) Загруженные данные из 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","Подробнее...");
}
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.