Домой Access Построчное чтение данных из Access database: Справочник по C#

Построчное чтение данных из Access database: Справочник по C#

857
0


      Для подключения к базе данных Microsoft Access можно воспользоваться мастером настройки источника данных, входящего в состав Visual Studio. После выполнения мастера, можно перетащить объекты данных из окна «Источники данных» в формы, для создания привязанных к данным элементов управления.

При добавлении файла базы данных «.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

ЧИТАТЬ ТАКЖЕ:  Connection strings for Access (Part 1): Справочник по C#

Построчное чтение данных из Access database: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь