14

connectionStringを初期化した後、SQLサーバーで「Petro」という名前のテーブルのスキーマを取得したいのですが、このコードを使用します

conn.open();
conn.getSchema("Tables");

ただし、すべてのテーブルのスキーマを返します。Petro スキーマのみが必要です。私は何をすべきか?

4

3 に答える 3

18
string[] restrictions = new string[4];
restrictions[2] = "Petro";
DataTable table = conn.GetSchema("Tables",restrictions);

詳細については、こちらを参照してください: MSDN: GetSchema メソッドの操作

編集: getSchema の代わりに GetSchema を使用する

于 2012-06-23T12:09:40.053 に答える
7

次の方法でスキーマを取得できます。

            string sql = "select * from Petro WHERE 1 = 0";
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            DataTable schema = reader.GetSchemaTable();
于 2012-06-23T12:15:28.633 に答える
5

SQL Server ソリューション:

というストアプロシージャがありますsp_columns。テーブルの名前をパラメータとしてそのプロシージャを実行すると、そのテーブルのスキーマだけが返されます。

于 2012-06-23T12:09:03.097 に答える