2012-03-01 18 views
-1
Update "Batery" Set "Stock" = 10 + "Stock" Where "idBatery" = 1 

私はPostgresでこのクエリを実行していました。 C#を使用してクエリを実行するにはどうすればよいですか。 ">> "株式" < <近くの構文エラーまたは":コマンド構文uningPostgreSQLとC#を使用してint値を更新する

"Update \"Batery\" Set \"Stock\" = " + tbAddStock.Text +"+ \"Stock\" Where \"idBatery\" = "+ tbIdBatery.Text 

私はこれを試してみました

"Update \"Batery\" Set \"Stock\" = (:stock) + \"Stock\" Where \"idBatery\" = (:idbatery)" 

と私は言うエラーが出ます、最初のケースでは。私はカントは、 'に可能System.String []' オブジェクトを変換」を得るcmdの場合 'System.IConvertible' が

+0

私は、パラメタにDataTypeとしてIntegerを送信しています。エル。 – dbncourt

+3

*と*は有効なPostgresまたはC#エラーメッセージではありません。 –

+0

トランザクションの後ろにいますか、コミットされていない可能性がありますか? –

答えて

1

ここでのNpgsql(PostgreSQL用のC#API)

1を使用して説明するためにいくつかのサンプルコードがあります)を作成しますコマンド 2)は、データベース・エラーキャッチコマンド 3)コマンド 4に、各パラメータの値を追加します。)「非クエリ」として実行() 5)SQL列が返さ期待していないにパラメータを追加

NpgsqlCommand command = new NpgsqlCommand("update battery set stock = :stock where id = :id;", connection); 
try 
{ 
command.Parameters.Add(new NpgsqlParameter("stock", NpgsqlTypes.NpgsqlDbType.Integer)); 
command.Parameters.Add(new NpgsqlParameter("id", NpgsqlTypes.NpgsqlDbType.Integer)); 
command.Parameters[0].Value = stock; 
command.Parameters[1].Value = id; 

command.ExecuteNonQuery(); 

command. 
} 
catch(NpgsqlException e) 
{ 
.... 
} 
関連する問題