2012-05-08 2 views
1

うん!私はもう一度 - 最近よくあなたに尋ねなければならないようです...テーブル内の値の更新:SQLiteエラー。コマンドに供給されているパラメータが不十分です

私の今の問題: テーブルの一部の(すべてではない)値を更新するSQLiteコマンドを作成しました。ここに私のコードは次のとおりです。

using (SQLiteConnection con = new SQLiteConnection(string.Format("Data Source={0};Version=3;", mstrDatabase))) 
{ 
    try 
    { 
     using (SQLiteCommand com = new SQLiteCommand("update WDATEN set TS_OUT = @TS_OUT, DATA_OUT = @DATA_OUT where ID = @ID", con)) 
     { 
      com.Parameters.AddRange(new SQLiteParameter[] 
      { 
       new SQLiteParameter("TS_OUT", DbType.DateTime){ Value = date}, 
       new SQLiteParameter("DATA_OUT", DbType.Double){ Value = numRest.Value} 
      }); 
      con.Open(); 
      com.ExecuteNonQuery(); 
      mDa.Fill(dsWDaten.WDATEN); 
      con.Close(); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Beim Speichern des Datensatzes ist ein Fehler aufgetreten.\n" + ex.ToString(), "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
} 

悲しいことに、私は、このコードブロックを実行するたびに - 私は例外を取得:

SQLiteのエラー。コマンドに供給されるパラメータが不十分です。

ここと他のページで検索しても役に立たなかった。私は何が欠けていますか?

+0

FYI、 'using(){}'ブロックでラップすると接続を閉じる必要はありません – abatishchev

+0

SQLiteCommandオブジェクトにパラメータの配列を追加する方法を示すサンプルコードをありがとう。 –

答えて

4

クエリには3つのパラメータ(@TS_OUT、@ DATA_OUT、および@ID)がありますが、@ IDではなく、最初の2つのパラメータのみを指定しています。

+0

omg ...私はあなたが大好き! :D – reijin

2

コード内でパラメータ@IDをどこに設定するかわかりません。 SQLステートメントには3つのパラメーターがあり、2つのみの値を指定します。

+0

omg ...私はあなたが大好き! :D – reijin

関連する問題