Поделиться через


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 .

Применяется к

См. также раздел