2012-05-08 51 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,不需要關閉連接,如果你與包裝它一個'使用(){}'塊 – abatishchev

+0

感謝顯示如何參數數組添加到SQLiteCommand對象的代碼示例。 –

回答

4

您的查詢有三個參數(@TS_OUT,@DATA_OUT和@ID),但你只是前兩個提供參數,而不是@ID。

+0

omg ...我愛你們! :d – reijin

2

我沒有看到你設置的參數@ID在你的代碼。您的SQL語句包含三個參數,您只提供兩個值。

+0

omg ...我愛你們! :D – reijin