2016-08-07 54 views
0

執行非常奇怪()錯誤在谷歌和許多職位在這裏搜索,但我仍然無法找到我的程序的解決方案。 所以代碼:。在SQLlite中使用C#

 var str1 = flatComboBox1.SelectedItem.ToString(); 
      var str2 = flatNumeric2.Value.ToString(); 
      var str3 = flatTextBox4.Text.ToString(); 
     var str4 = flatTextBox7.Text = ToString(); 
      SQLiteCommand SelectCommand = new SQLiteCommand("UPDATE Produkte SET Emri='"+ str1 +"', Sasia='" + str2 + "',Cmimi ='" + str3 + "', CmimiB='" +str4+"' WHERE Emri='" + str1 + "'"); 

     try 
     { 
      connectionstring.Open(); 

      SelectCommand.ExecuteNonQuery(); // <--- Line 65 and the error 

      connectionstring.Close(); 
     } 
     catch (Exception ex) { 
      MessageBox.Show(ex.ToString()); 
     } 

這是我的錯誤。

This is the problem I get

如何解決這一問題?我已經嘗試了很多東西,但仍然看起來沒有什麼可以解決它。

回答

0

您可能想嘗試使用參數化語句來避免C#字符串變量中的撇號成爲SQL查詢的一部分時可能出現的問題。

例如:

SQLiteCommand SelectCommand = new SQLiteCommand("UPDATE Produkte SET Emri = @Emri, Sasia= @Sasia, Cmimi = @Cmimi, CmimiB = @CmimiB WHERE Emri = @Emri"); 

SelectCommand.Parameters.AddWithValue("@Emri", str1); 
SelectCommand.Parameters.AddWithValue("@Sasia", str2); 

或者,你可以這樣做:

SelectCommand.Parameters.Add(new SQLiteParameter("@Emri", str1)); 

等等,所有參數。

+0

AdWithValue無法使用。它顯示一個錯誤。 「SQLiteParameterCollection不包含'AdWithValue'的定義 – berg96

+0

您可以嘗試AddWithValue(two d's)嗎?像這樣: SelectCommand.Parameters.AddWithValue(」@ Emri「,str1); – Alex

+0

SelectCommand.Parameters它只是添加。其他包含添加或廣告 – berg96