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 содержащий запрошенные сведения о схеме.
Исключения
Указанный набор ограничений недопустим.
Указанный набор строк схемы не поддерживается поставщиком 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 .