Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 45

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 260 >> Следующая

Таким образом, следующий код возвращает список столбцов таблицы Customers:
Visual Basic
Dim strConn As String = ,'Providet=SQLOLtTjB; Data Source=Uocal)\NetSuK~ & _ "Initial Catalog=Northwind;Trusted_Connection=Yes; -Dim cn As New OleDbConnection(strConn) cn.OpenO
Dim objRestrictions As ObJect()
ObjRestrictions = New ObjectO {Nothing. Nothing, "Customers", Nothing}
Dim tbl As DataTable
tbl = cn.Get01eDbSchemaTable(01eDbSchemaGuid.Columns, objRestrictions) Visual C# NET
string strConn = ¦¦prrjvid&^SGtOLEDB: Data Source=(iocal)\VJotSDK;" +
"Initial Catalog=Northwlnd;Trusted_Connection=Yes;"; OieDbConnection cn = new OleDbConnection(strConn); cn.OpenO;
string
object[] objRestrictions;
objRestrictions = new object[] {null, null, "Customers", null};
¦»-5958
74
Часть II Подключаемся; использование поставщика данных NET
DataTable tbl;
tbl = en. Get01eObSchemaTable<CIsDoSr.hsipaGiij ci. Columns, objflestrictions);
Подробнее о составляющих гырлчсг рз Restrictions для конкретных значений OleutiSchvmauiiiu — в документации MSDN.
Метод GetOleDbSchemaTable возвращает объект DataTable (подробнее о нем -в главе б), содержащий нужную вам информацию схемы. Структура возвращенного методом объекта DataTable зависит от типа запрошенной вами схемы. Следующий код просматривает записи таблицы со списком полей, возвращенной
методом
Visual Basic .NET
tbl = or. Set01oDbSci!««!a7able<0280&ScftcsaCuid. Cclumns, strBestricttons) Console.WriteLine("Columns in Customers table:") For Each row In tbl.Rows
Console.WriteLine(vbTab & row("COLUHN_NAME").ToStrlng())
Next row
Visual C# .NET
tbl = cn.Get01eDbSch8i«aTable(01eDt)Scheina6uid. Columns. strRestrictions); Console.WrlteLlneC'Columns in Customers table:"); foreaeh(OataRovt row in tbl Rows)
Console.WritaLine("\t" + ro«["C0LllHN_NAHE"].ToStrin9());
Можно создать простое приложение, которое будет с помощью метода GetOleDbSchemaTable выводить информацию схемы о вашей БД (таблицы, представлена хранимые процедуры и т.д.) почти так же, как это делает Server Explorer.
Метод GetOleDbSchemaTable основывается на функциональности поставщика OLE DB, используемого вашим объектом OleDbConnection. Не все поставщики предоставляют все методы для работы со схемой. Если вы запросите не поддерживаемую вашим поставщиком OLE DB, приложение сгенерирует перехватываемое исключение.
Метод Орел
Для установки соединения с БД вызывают метод Open объекта Connection. Объект пытается подключиться к БД, используя значение своего свойства о>тн\ /нт&гЬщ Если соединение установить не удалось, объект Connection генерирует исключение.
Visual Basic NET
Dim strConn As String - "Provlder=SGLOLEDB: Data Scurce=( local )\NetSDK;'' &
"Initial Catalog=Northwind;Trusted„Connection=yes;" Dim on As New 01eDbConneotion(strConn)
Try
cn.0pen()
Catch ex As Exception
Console.WriteLineCAttempt to connect failed!" & vbCrLf & ex.Message)
End Try
ГЛАВА 3 Подключение к базе данных 75
Visual С# .NET
string strCs^ = "Provlder=SOLOLEDB;Data Sourc6=uocal)V\NetSDK;" +¦
"initial Catalog=Northwind;Trusted_Connection=Yes;"; OleDbConnection СП = new OieDbConnecLlon(strconn); try
{
cn.OpenO;
}
catch (Exception ex) {
Console.WriteUnerAttempt to connect failed! V + ex.Message);

Если вызвать метод Open открытого объекта Connection, соединение будет закрыто и повторно открыто. При использовании пула соединений в этом случае, :!i:j:-5iCJv.;; j, будет создано дополнительное соединение с источником данных, Когда начальное соединение 2?.к'~.улаегтся, оно помещается в пул. Однако поскольку пул соединений обрабатывается отдельным потоком, в момент, когда объект Connection запросит соединение с данных, основываясь на строке подключения,
начального соединения может не оказаться в пуле.
Метод ReleaseObjectPool
Позволяет управлять пулом соединений OLE из компонентов.
вызвать метод ReleaseObjectPool для объекта Connection или непосредственно для класса соединение будет удалено из пула.
По правде сказать, этот метод используется редко. В бета-версии Visual
Studio .NET большинство разработчиков применяли метод ReleaseObjectPool, чтобы действительно закрыть физическое соединение с источником данных, а не помещать его в пул. В таком случае лучше сразу создать соединение, которое не будет помещаться в пул. Для этого вставьте в строку подключения следующий фрагмент:
OLE DB Servlces=-4;
В результате после вызова метода Close класса OleDbConnection соединение с источником данных закрывается, а не помещается в пул.
События объекта OleDbConnection
Объект OleDbConnection предоставляет два события - InfoMessage и SlaleChange (табл. 3-4).
Таблица 3-4. События объекта OleDbConnection
Событие Описание_
InfoMessage когда объект Connection получает от источника данных
информационное сообщение
StateChange Наступает при изменении свойства State объекта OleDbConnection
76
Часть Подключаемся: использование поставщика данных МЕЛ
Событие InfoMessage
Некоторые СУБД, например SQL Server, поддерживают инфордзационные сообщения. SQL Server позволяет передавать сообщения клиентам с помощью команды PRINT. Такие сообщения не являются сообщениями об ошибках и не включают результаты запросов.
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100