OleDbConnection.GetOleDbSchemaTable(Guid, Object[]) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает сведения схемы из источника данных, как указано в GUID, и после применения указанных ограничений.
public:
System::Data::DataTable ^ GetOleDbSchemaTable(Guid schema, cli::array <System::Object ^> ^ restrictions);
public System.Data.DataTable? GetOleDbSchemaTable (Guid schema, object?[]? restrictions);
public System.Data.DataTable GetOleDbSchemaTable (Guid schema, object[] restrictions);
member this.GetOleDbSchemaTable : Guid * obj[] -> System.Data.DataTable
Public Function GetOleDbSchemaTable (schema As Guid, restrictions As Object()) As DataTable
Параметры
- schema
- Guid
Одно из значений OleDbSchemaGuid, указывающее возвращаемую таблицу схемы.
- restrictions
- Object[]
Массив Object значений ограничений. Они применяются в порядке следования столбцов ограничений. То есть первое значения ограничения применяется к первому столбцу ограничений, второе значения ограничения — ко второму столбцу и т. д.
Возвращаемое значение
Объект DataTable, содержащий запрошенные сведения о схеме.
Исключения
Указанный набор ограничений недопустим.
Объект OleDbConnection закрыт.
Указанный набор строк схемы не поддерживается поставщиком OLE DB.
-или-
Параметр schema
содержит значение DbInfoLiterals, а параметр restrictions
содержит одно или несколько ограничений.
Примеры
Следующий пример возвращает список таблиц в базе данных.
static DataTable GetSchemaTable(string connectionString)
{
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open();
DataTable schemaTable = connection.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
return schemaTable;
}
}
Public Function GetSchemaTable(ByVal connectionString As String) _
As DataTable
Using connection As New OleDbConnection(connectionString)
connection.Open()
Dim schemaTable As DataTable = _
connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
Return schemaTable
End Using
End Function
Комментарии
Таблица схемы возвращается в формате DataTable , который имеет тот же формат, что и набор строк схемы OLE DB, заданный параметром schema
. Используйте параметр для restrictions
фильтрации строк, возвращаемых в DataTable (например, путем указания ограничений для имени таблицы, типа, владельца или схемы). При передаче значений в массив добавьте пустые строки или значения NULL для элементов массива, которые не содержат значений. Если передать пустой массив restrictions
в , все строки (по одной для каждой таблицы) возвращаются в порядке по умолчанию. Значения в массиве соответствуют порядку столбцов в исходной таблице и DataTable. Каждый элемент в массиве ограничений сравнивается с содержимым соответствующего столбца в наборе строк схемы. Например, первый элемент в массиве ограничений сравнивается с первым столбцом в наборе строк. Если элемент ограничения не имеет значения NULL, к результирующему DataTableэлементу добавляются только строки из набора строк схемы, которые точно соответствуют значению ограничения .
Метод OleDbConnection вызывает базовый метод OLE DB IDBSchemaRowset::GetRowset , используя стандартные правила преобразования среды CLR. Дополнительные сведения см. в разделе Типы данных COM.
Сведения о литералах можно получить с помощью DbInfoLiterals. Это предоставляет сведения, эквивалентные вызову интерфейса OLE DB IDBInfo::GetLiteralInfo или метода ADO Connection.OpenSchema с константой adSchemaDBInfoLiterals
.