OleDbConnection.GetOleDbSchemaTable(Guid, Object[]) 方法

定义

应用了指定的限制之后,按照 GUID 的指示从数据源返回架构信息。

C#
public System.Data.DataTable? GetOleDbSchemaTable(Guid schema, object?[]? restrictions);
C#
public System.Data.DataTable GetOleDbSchemaTable(Guid schema, object[] restrictions);

参数

schema
Guid

OleDbSchemaGuid 的值之一,它指定要返回的架构表。

restrictions
Object[]

限制值的 Object 数组。 这些值按照限制列的顺序来应用。 即:第一个限制值应用到第一个限制列,第二个限制值应用到第二个限制列,依此类推。

返回

一个包含所请求的架构信息的 DataTable

例外

指定的限制集无效。

OLE DB 提供程序不支持指定的架构行集合。

- 或 -

schema 参数包含 DbInfoLiterals 的值,restrictions 参数包含一条或多条限制。

示例

以下示例返回数据库中表的列表。

C#
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;
    }
}

注解

架构表作为 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

适用于

产品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

另请参阅