Для подключения к базе данных Microsoft Access можно воспользоваться мастером настройки источника данных, входящего в состав Visual Studio. После выполнения мастера, можно перетащить объекты данных из окна "Источники данных" в формы, для создания привязанных к данным элементов управления.
Ниже представлен полный листинг примера по считыванию стран из базы данных Access 2003 «OleDbDataReader.mdb», таблицы «Country» и поля (колонки) «Name» с выводом в следующие элементы управления:
При добавлении файла базы данных «.mdb» через Мастер настройки источника данных, пользователю предоставляется выбор: добавить файл в проект или оставить его в его исходном местоположении. Если вы выбрали вариант добавления файла в проект. После завершения работы мастера, в проект добавятся два фала базы данных: Файл «.mdb» и файл строго типизированного набора данных «.xsd». Выбранные объекты базы данных сразу же становятся доступны в Окно "Источники данных" для перетаскивания в форму.
В данном примере рассмотрен процесс ручного подключения к базе данных в формате Access 2003 и более ранних версий через драйвер Microsoft.JET.OLEDB.4.0 с использованием объекта «OleDbDataReader», для построчного чтения данных.OLE DB - это стандарт обмена данными между приложениями, позволяющий вам выполнять различные манипуляции с базами данных Access.
Объект «OleDbDataReader» представляет собой «присоединенный» однонаправленный курсор, который перемещается только вперед. Другими словами, вы можете просматривать возвращенные записи только в одном направлении, а соединение с базой данных остается открытым до тех пор, пока не будет закрыт объект считывания данных. Экземпляр класса «OleDbDataReader» не может быть порожден непосредственно – такой объект всегда возвращается как результат вызова метода «ExecuteReader» класса «OleDbCommand». Метод «ExecuteReader» выполнит SQL команду и возвратит объект «IDataReader».OleDbDataReader dr = command.ExecuteReader();В классе «OleDbDataReader» имеется индексирующий объект, который обеспечивает доступ к любому полю, используя синтаксис массива «dr["Name"])».Доступ к данным классам открывают две директивы:
using System; using System.Data.OleDb;Чтение данных осуществляется через цикл «while (dr.Read())», в котором построчно считываются данные с указанием необходимых полей (колонок).
Ниже представлен полный листинг примера по считыванию стран из базы данных Access 2003 «OleDbDataReader.mdb», таблицы «Country» и поля (колонки) «Name» с выводом в следующие элементы управления:
- ComboBox;
- ListBox;
- CheckedListBox
- TextBox;
- RichTextBox;
- TreeView.
// Объявляем переменную для подключения к БД.
OleDbConnection connection = new OleDbConnection();
//Строка соединения с БД, котороя содержит провайдера для
//подключения и имя базы данных,
//которая будет находиться рядом с исполняемым файлом.
connection.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=OleDbDataReader.mdb";
//Инициализируем новую переменну
//содержащую комманду - запрос
OleDbCommand command = new OleDbCommand();
//Текст комманды-запроса к базе данных
command.CommandText = "Select Name from Country";
//Задаем подключение System.Data.OleDb.OleDbConnection,
//используемое экземпляром класса System.Data.OleDb.OleDbCommand.
command.Connection = connection;
try
{
//Открываем новое подключение к базе данных со значениями свойств,
//определяемыми объектом
//System.Data.OleDb.OleDbConnection.ConnectionString.
connection.Open();
//Отправляет System.Data.OleDb.OleDbCommand.CommandText
//в System.Data.OleDb.OleDbCommand.Connection
//и создает объект System.Data.OleDb.OleDbDataReader.
OleDbDataReader dr = command.ExecuteReader();
//Значение true, если объект System.Data.OleDb.OleDbDataReader
//содержит одну или несколько строк;
//в противном случае — значение false.
if (dr.HasRows)
{
//
while (dr.Read())
{
//Добавляем новую строку в элементы управления
//, где в качестве источника значения
//указывается имя столбца.
comboBox1.Items.Add(dr["Name"]);
listBox1.Items.Add(dr["Name"]);
checkedListBox1.Items.Add(dr["Name"]);
textBox1.Text = textBox1.Text + dr["Name"] + " ";
richTextBox1.Text = richTextBox1.Text
+ dr["Name"] + Environment.NewLine;
treeView1.Nodes.Add(dr["Name"].ToString());
}
//Устанавливаем в элементе управления
//comboBox1 по умолчанию выбранным, первый элемент списка
comboBox1.SelectedIndex = 0;
}
}
catch (Exception ex)
{
//Сообщение об ошибке
MessageBox.Show("Ошибка получения данных: " +Environment.NewLine
+ ex.ToString());
}
finally
{
//Закрываем соединение с базой данных.
connection.Close();
}Результат работы данного примера представлен ниже.Ссылка на исходник: Rusfolder.net




Отличная статейка! Помогло очень
ОтветитьУдалитьспасибо огромное.
ОтветитьУдалить