2. Принципы работы с базами данных с помощью технологии

advertisement
2. Принципы работы с базами данных с помощью технологии ADO.NET
С# имеет свои средства для подключения и обращения к базам данных. Эти средства
объединены в технологии ADO.NET. Средства этой технологии позволяют как
обращаться к базе данных посредством запросов и команд на изменение данных, так и
работать с так называемыми отсоединенными наборами данных, которые позволяют
экономить время и уменьшать нагрузку на соединение с базой данных.
Разберем основные средства работы с базой данных в рамках стандартного обращения
«запрос-ответ».
Средства работы с базами данных объединены в пространстве имен
using System.Data;
а также в специализированных пространствах имен, которые
особенностями технологии соединения с базой данных, например,
отличаются
using System.Data.OleDb;
Для обращения к базе данных требуется выполнить несколько этапов:
1. Создать объект соединения с базой данных:
OleDbConnection conn=new OleDbConnection();
2. Задать строку подключения к базе данных:
// строка подключения к базе «control» в SQL Server
conn.ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist
Security Info=False;Initial Catalog=control;Data Source=(local)";
Для получения строки подключения можно воспользоваться специальной
утилитой операционной системы – создать файл с расширением .udl, задать
описание строки подключения
в диалоговом режиме, затем строку
подключения можно посмотреть, открыв файл в текстовом режиме (например, в
блокноте).
3. Требуется открыть соединение с базой данных:
conn.Open();
4. Далее формируются и выполняются команды
// создается объект команды
OleDbCommand command=new OleDbCommand();
// задается текст команды
command.CommandText="Select * from Zakaz";
// задается соединение, к которому относится команда
command.Connection=conn;
// выполнение команды. Результат выполнения представляет собой курсор –
// таблицу, которую можно обрабатывать построчно
OleDbDataReader dr=command.ExecuteReader();
// цикл просмотра строк результата запроса
while(dr.Read())
{
// объект dr расположен на текущей строке таблицы,
// к столбцам можно обратиться по имени, указав их в качестве
// индекса массива элементов строки
Console.WriteLine(""+dr["client"]+"\t"+dr["address"]+
"\t"+dr["comment"]);
}
dr.Close();
5. Если выполняется команда на изменение данных, при выполнении команды
используется функция
command.ExecuteNonQuery();
или
command.ExecuteScalar();
6. В случае возникновения ошибки для корректной обработки этой ошибки и
получения информации о ней нужно воспользоваться механизмом обработки
исключительных ситуаций
try
{
// команды, в которых может возникнуть ошибка.
// Если ошибка возникнет, управление передается в блок catch,
// который следует за блоком try
}
catch(OleDbException e)
{
// обработчик ошибки с базой данных – распечатка информации об ошибке
Console.WriteLine(e.ToString());
}
Download