Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 807 / 36 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Лекция 2:

ADO.NET и доступ к данным

< Лекция 1 || Лекция 2: 12 || Лекция 3 >

Шаг 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";

/* А вот это копия строки соединения, сгенерированная редактором 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

Загруженные данные из MS Access

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

Рис. 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","Подробнее..."); 
}
< Лекция 1 || Лекция 2: 12 || Лекция 3 >