connectionStringを初期化した後、SQLサーバーで「Petro」という名前のテーブルのスキーマを取得したいのですが、このコードを使用します
conn.open();
conn.getSchema("Tables");
ただし、すべてのテーブルのスキーマを返します。Petro スキーマのみが必要です。私は何をすべきか?
string[] restrictions = new string[4];
restrictions[2] = "Petro";
DataTable table = conn.GetSchema("Tables",restrictions);
詳細については、こちらを参照してください: MSDN: GetSchema メソッドの操作
編集: getSchema の代わりに GetSchema を使用する
次の方法でスキーマを取得できます。
string sql = "select * from Petro WHERE 1 = 0";
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
DataTable schema = reader.GetSchemaTable();
SQL Server ソリューション:
というストアプロシージャがありますsp_columns
。テーブルの名前をパラメータとしてそのプロシージャを実行すると、そのテーブルのスキーマだけが返されます。