Share via


OleDbConnection.GetOleDbSchemaTable 方法

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

**命名空间:**System.Data.OleDb
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Function GetOleDbSchemaTable ( _
    schema As Guid, _
    restrictions As Object() _
) As DataTable
用法
Dim instance As OleDbConnection
Dim schema As Guid
Dim restrictions As Object()
Dim returnValue As DataTable

returnValue = instance.GetOleDbSchemaTable(schema, restrictions)
public DataTable GetOleDbSchemaTable (
    Guid schema,
    Object[] restrictions
)
public:
DataTable^ GetOleDbSchemaTable (
    Guid schema, 
    array<Object^>^ restrictions
)
public DataTable GetOleDbSchemaTable (
    Guid schema, 
    Object[] restrictions
)
public function GetOleDbSchemaTable (
    schema : Guid, 
    restrictions : Object[]
) : DataTable

参数

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

返回值

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

异常

异常类型 条件

OleDbException

指定的限制集无效。

InvalidOperationException

OleDbConnection 是关闭的。

ArgumentException

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

- 或 -

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

备注

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

OleDbConnection 方法使用标准的公共语言运行库转换规则,调用基础的 IDBSchemaRowset::GetRowset 方法。有关更多信息,请参见 COM 数据类型

使用 DbInfoLiterals 可以检索有关原义字符的信息。这将提供与调用 OLE DB IDBInfo::GetLiteralInfo 接口或使用 adSchemaDBInfoLiterals 常数作为参数调用 ADO Connection.OpenSchema 方法等效的信息。

示例

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

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
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;
    }
using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
        string x = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI";
        GetSchemaTable(x);
        Console.ReadLine();
    }

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

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

OleDbConnection 类
OleDbConnection 成员
System.Data.OleDb 命名空间

其他资源

连接到数据源