ODBCおよびOleDBを使用してスキーマにアクセスする最も効率的な方法
質問
C#を使用してDALテンプレートを作成していますが、ODBCおよびOleDBを使用してスキーマ情報にアクセスする最も効率的な方法は何ですか?列、列タイプ、および主キー情報が必要です。
ありがとう
解決
OleDbには、OleDbConnection.GetoleDbSchemaTable()メソッドがあります。 Accessで使用しました。
GitHubのこのコードには例があります。
csemaaalidator.cscs >
OdbcConnectionにも.Schema()メソッドが必要です。IIRC。 実際の返り値はデータベースによって異なる場合があることに気づいたので、返り値が何であるかを確認するために、かなりの量のチェックとデバッグを行う必要があります。
他のヒント
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 );
}
}
ここから、データベース内のテーブル(およびその他のオブジェクト)を取得できます。
所属していません StackOverflow