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 返回,该表的格式与 参数指定的 schema OLE DB 架构行集的格式相同。 restrictions使用 参数筛选 (中DataTable要返回的行,例如,通过指定表名称、类型、所有者或架构) 的限制。 在数组中传递值时,对于不包含值的数组元素,请包含空字符串或 null。 如果将空数组传递给 restrictions,则每个表) (一个行的所有行将按默认顺序返回。 数组中的值对应于源表和 DataTable中的列的顺序。 限制数组中的每个元素都与架构行集中相应列的内容进行比较。 例如,限制数组中的第一个元素与行集中的第一列进行比较。 如果限制元素不为 null,则只会将架构行集中与限制值完全匹配的行添加到生成的 DataTable

方法 OleDbConnection 使用标准公共语言运行时转换规则调用基础 OLE DB IDBSchemaRowset::GetRowset 方法。 有关详细信息,请参阅 COM 数据类型

可以使用 检索有关文本 DbInfoLiterals的信息。 这提供的信息等效于调用 OLE DB IDBInfo::GetLiteralInfo 接口或使用常量调用 ADO Connection.OpenSchema 方法 adSchemaDBInfoLiterals

适用于

另请参阅