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
参数
- schema
OleDbSchemaGuid 的值之一,它指定要返回的架构表。
- restrictions
限制值的 Object 数组。这些值按照限制列的顺序来应用。即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。
返回值
一个包含所请求的架构信息的 DataTable。
异常
异常类型 | 条件 |
---|---|
指定的限制集无效。 |
|
OleDbConnection 是关闭的。 |
|
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 命名空间