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 値の 1 つ。

restrictions
Object[]

制約値の Object 配列。 制約値は、制約列の順に適用されます。 つまり、最初の制限値は最初の制限列に、2 番目の制限値は 2 番目の制限列に、という形で適用されます。

戻り値

要求したスキーマ情報を格納した DataTable

例外

指定された制約セットが無効です。

OleDbConnection が閉じています。

指定されたスキーマ行セットは、OLE DB プロバイダーでサポートされていません。

- または -

schema パラメーターに DbInfoLiterals の値が格納され、restrictions パラメーターに 1 つ以上の制約が格納されています。

次の例では、データベース内のテーブルの一覧を返します。

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

注釈

スキーマ テーブルは、schema パラメーターで指定した OLE DB スキーマ行セットと同じ形式を持つ DataTable として返されます。 パラメーターを restrictions 使用して、 で DataTable 返される行をフィルター処理します (たとえば、テーブル名、型、所有者、またはスキーマの制限を指定します)。 値を配列で渡す場合、値を含まない配列要素には空の文字列または NULL を含めます。 に空の配列を restrictions渡すと、すべての行 (テーブルごとに 1 行) が既定の順序で返されます。 配列内の値は、ソース テーブルと DataTableの列の順序に対応します。 制限配列の各要素は、スキーマ行セット内の対応する列の内容と比較されます。 たとえば、制限配列の最初の要素は、行セットの最初の列と比較されます。 制限要素が null でない場合、その制限の値と完全に一致するスキーマ行セットの行のみが、結果の DataTableに追加されます。

メソッドは OleDbConnection 、標準の共通言語ランタイム変換規則を使用して、基になる OLE DB IDBSchemaRowset::GetRowset メソッドを呼び出します。 詳細については、「 COM データ型」を参照してください。

を使用 DbInfoLiteralsしてリテラルに関する情報を取得できます。 これは、OLE DB IDBInfo::GetLiteralInfo インターフェイス、または定数を使用して ADO Connection.OpenSchema メソッドを呼び出すことと同等の情報を adSchemaDBInfoLiterals 提供します。

適用対象

こちらもご覧ください