0

現在、ファイルからデータを postgres テーブルに挿入する小さな C# プログラムを作成しています。

挿入を行うコードは次のようになります。

 NpgsqlCommand cmd = new NpgsqlCommand(@"INSERT INTO :table(text) VALUES (:word);", con);
 cmd.Parameters.AddWithValue("table", table);
 cmd.Parameters.AddWithValue("word", line);
 cmd.ExecuteNonQuery(); 

しかし、「ExecuteNonquery」行を実行しようとするたびに、次のエラーが発生します。

An unhandled exception of type 'Npgsql.NpgsqlException' occurred in Npgsql.dll
Additional information: ERROR: 42601: syntax error at or near "("

チェックしたデータベースに接続できます。変数 table と line も、実行時に正しい値を持ちます。私は問題が何であるかを理解することはできません..

助言がありますか ?

4

1 に答える 1

4

私の知る限り、テーブルをパラメータにすることはできません。

ただし、できることは、そのために文字列の連結/フォーマットを使用することです。

string table = "table";
NpgsqlCommand cmd = new NpgsqlCommand(string.Format(@"INSERT INTO {0}(text) VALUES (:word);", table), con);

それがうまくいくと思います(それをテストしませんでした)。

于 2012-05-26T15:48:19.773 に答える