Пространство имен System.Data.OleDb
Пространство имен System.Data.OleDb содержит классы, используемые при взаимодействии с OLE DB-совместимыми базами данных (такими, как Microsoft Access или Microsoft Fox Pro). Обычно в программах используются классы OleDbConnectlon, OleDbCommand и OleDbDataReader этого пространства имен. Ниже приведены краткие описания этих важных классов.
- Класс OleDbConnection: можно считать, что этот класс представляет соединение с источником данных OLE DC и содержит свойства, необходимые для подключения к базе данных (данные провайдера OLE DB, имя пользователя и пароль). После соединения в экземпляре класса сохраняются дополнительные метаданные о базе данных.
- Класс OleDbCommand: класс представляет команды SQL, применяемые к базе данных OLE DB. Вместе с командой хранятся все параметры и дополнительная информация, необходимая для обработки запроса.
- Класс OleDbDataReader: используется после получения данных от источника при помощи двух классов, описанных выше. Является специализированной формой класса потока ввода (см. главу 9) и умеет только читать данные, возвращаемые объектом OleDbCommand. Аналогом объекта DataReader в ADO является набор записей, хранящийся на сервере, доступный только для чтения и поддерживающий только перебор в прямом направлении.
Ниже приведен пример использования этих трех классов. Наше приложение подключается к базе данных Northwind, входящей в поставку Access и современных версий SQL Server.
1 Imports System.Data.OleDb 2 Module Modulel 3 Sub Maint) 4 Dim myAccessConn As OleDbConnection 5 Dim dbReader As OleDbDataReader 6 Dim dbCmd As OleDbCommand =New OleDbCommand( 7 "SELECT Employees.FirstName.Employees.LastName FROM Employees") 8 Try 9 ' Открыть соединение 10 myAccessConn = New OleDbConnection( 11 "Provider=Microsoft.Jet.OLEDB.4.0;" &_ 12 "Data Source=C:\Program Files \Microsoft _ Office\0ffice\SamplesNNorthwind.mdb") 13 myAccessConn.Open() 14 dbCmd.Connection = myAccessConn 15 dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult) 16 Do While dbReader.Read() 17 Console.WriteLine(dbReader.GetString(0) & " " & _ dbReader.GetString(1)) 18 Loop 19 Console.ReadLine() 20 Catch e As Exception 21 MsgBox(e.Message) 22 End Try 23 End Sub 24 End Module
Результаты, полученные при запуске этого приложения, показаны на рис. 11.1.
Рис. 11.1. Результаты выполнения простого запроса SQL