0

C# で DAL テンプレートを作成していますが、ODBC と OleDB を使用してスキーマ情報にアクセスする最も効率的な方法は何だろうと考えています。列、列の種類、および主キーの情報が必要です。

ありがとう

4

2 に答える 2

3

OleDb には、OleDbConnection.GetoleDbSchemaTable() メソッドがあります。アクセスで使用しました。

GitHub のこのコードに例があります: SchemaValidator.cs

OdbcConnection にも IIRC に .Schema() メソッドが必要です。

実際に返される値はデータベースによって異なる可能性があることに気付きました。そのため、かなりの量のチェックとデバッグを行って、返される値が何であるかを確認する必要があります。

于 2009-01-16T03:26:55.563 に答える
0

SQL Server 管理オブジェクトを使用します。

http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.aspx

例えば:

Microsoft.SqlServer.Management.Smo.Server s = new 
        Microsoft.SqlServer.Management.Smo.Server( @"DUFF\SQLEXPRESS" );

foreach ( Database db in s.Databases )
{
    if ( ! db.IsSystemObject )
    {
        listboxDatabase.Items.Add( db.Name );
    }
}

ここから、データベース内のテーブル (およびその他のオブジェクト) を取得できます。

于 2009-01-16T02:52:09.520 に答える