ADO.NET и доступ к данным
Шаг 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
Шаг 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","Подробнее..."); }