Введение в ADO.NET. Часть первая
Автор: Дроздовский Михаил
На протяжении нескольких лет Microsoft разрабатывает и совершенствует технологии доступа к данным, постоянно дополняя и изменяя их (последнее Microsoft делает затем, наверное, чтобы программистам жизнь медом не казалась)) ).
Выпуская платформу .NET, Microsoft позаботилась об усовершенствовании технологий доступа к данным, разработав ADO.NET
Новая объектная модель. В основе ADO.NET лежит новая объектная модель, в основе которой, в свою очередь — два разных подхода к работе с данными: присодиненный и отсоединенный.
Присоединенные объекты (такие как Connection, Transaction, DataReader, Command) предназначены для управления соединением, транзакциями, выборки данных и передачи изменений в БД. Отсоединенные объекты удобны тем, что они позволяют работать с данными автономно (и манипулировать данными в произвольном порядке).
Объект Connection. Соединение. ADO.NET содержит набор разных поставщиков данных — классов, предназначенных для работы с хранилищами данных определенных форматов. Каждый поставщик данных .NET реализует одинаковые базовые классы — Connection, DataProvider, Transaction, Command и Parameter, конкретное имя которых (например, SqlCommand) зависит от поставщика данных. Но независимо от имени, эти классы реализуют одинаковые базовые функции (реализуя одинаковые базовые интерфейсы).
У каждого поставщика данных .NET — собственное пространство имен, принадлежащее System.Data:
System.Data.SqlClient — для SQL Server-провайдера
System.Data.OleDb — для OleDB-провайдеров
System.Data.Oracle — для провайдера Oracle
System.Data.Odbc — для ODBC-провайдера
В этой статье мы будем рассматривать преимущественно классы из System.Data.SqlClient .
Итак, приступаем к созданию соединения.
Конструктор класса SqlConnection выглядит следующим образом:
SqlConnection xcc = new SqlConnection("строка подключения")
где строка подключения выглядит как строка вида параметр=значение; со следующими основными параметрами:
Provider — провайдер SQL Server'а, например SQLOLEDB
Data Source — сервер баз данных, например, (local)
Initial Catalog — имя базы данных на сервере, например Northwind
User ID — логин пользователя для доступа к базе данных
Password — пароль пользователя
Integrated Security — встроенная авторизация, например SSPI
Пример строки подключения:
SqlConnection xcc = new SqlConnection("Data Source=(local)Initial Catalog=Northwind;Integrated Security=SSPI;")
У объекта типа SqlConnection есть два основных метода — Open() и Close(). Что они делают, догадаться нетрудно :) (правильный ответ: открывают и закрывают соединение).
Объект Command. Запрос к базе данных. Объект SqlCommand — один из основных объектов ADO.NET, входящих в объекты подсоединенного режима.
Конструктор SqlCommand в общем случае имеет следующий вид:
SqlCommand cmd1 = new SqlCommand("текст запроса или вызова процедуры", xcc)
где xcc является объектом типа SqlConnection
Объект SqlCommand имеет три выполняющих запрос метода, а именно:
ExecuteNonQuery (возвращает количество строк, которые затронул запрос) — для запросов, не возвращающих данные (таких как INSERT, DELETE, UPDATE итп).
ExecuteScalar — для запросов, возвращающих одно значение (например, SELECT COUNT(*) FROM xdb_users WHERE fid=1)
ExecuteReader — для запросов, возвращающих больше одного значения. Метод ExecuteReader возвращает объект типа SqlDataReader для работы с данными.
Продолжение следует...