閱讀英文

共用方式為


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

定義

在套用指定的限制之後,從資料來源傳回 GUID 所指示的結構描述 (Schema) 資訊。

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 提供者不支援指定的結構描述資料列集 (Rowset)。

-或-

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 會使用標準 Common Language Runtime 轉換規則呼叫基礎 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)

另請參閱