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

适用于

另请参阅