2

C# 2.0 には、フィールドのリストと値のリスト (文字列として格納)、テーブル名、および ODBC 接続があります。

そのテーブルにあるフィールドのデータ型を取得する必要があるため、SQL を生成する方法を知っています。

私が持っているものからその情報を得る最良の方法は何ですか?

私の唯一のアイデアはSELECT TOP 0 * FROM @TableName、データ アダプターで実行し、データセットを取得し、データテーブルのデータ列に対してフィールド名のリストを反復処理することです。

これについてもっと良い方法はありますか?

4

2 に答える 2

4

これを試して

select * from sys.columns where object_id = object_id('MyTable')

お役に立てれば。

于 2009-01-30T17:35:57.843 に答える
2

最善の選択肢は、Nick Beradi が言及したように、データベース システム テーブルにクエリを実行することです。何らかの理由でそれができない場合は、次のようにすることができます。

using (SqlConnection conn = new SqlConnection(myConnectionString))
            {
                using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * from MyTable", conn))
                {
                    DataTable table = new DataTable();
                    adapter.FillSchema(table, SchemaType.Mapped);
                    //at this point, table will have no rows, but will have all the columns of which you can get their datatypes
                }
            }
于 2009-01-30T18:38:09.170 に答える