2016-08-07 15 views
0

Suche in Google und in vielen Posts hier, aber immer noch habe ich nicht in der Lage, eine Lösung für mein Programm zu finden. so der Code:.ExecuteNonQuerry() Fehler in SQLlite mit 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()); 
     } 

Dies ist der Fehler, den ich bekommen.

This is the problem I get

, wie dieses Problem beheben? Ich habe im Laufe der Zeit viele Dinge ausprobiert und es sieht immer noch so aus, als ob nichts mehr repariert werden kann.

Antwort

0

Sie können versuchen, eine parametrisierte Anweisung zu verwenden, um mögliche Probleme mit Apostrophen in C# -Zeichenfolgenvariablen zu vermeiden, wenn sie Teil der SQL-Abfrage werden.

Zum Beispiel:

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); 

Oder Sie tun können:

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

Und so weiter, für alle Parameter.

+0

AdWithValue funktioniert nicht. Es zeigt einen Fehler an. "SQLiteParameterCollection enthält keine Definition für 'AdWithValue' – berg96

+0

Kannst du AddWithValue (zwei d's) ausprobieren? Gefällt mir: SelectCommand.Parameters.AddWithValue (" @Emri ", str1); – Alex

+0

für SelectCommand.Parameters hat es nur Add. Nichts else, die Add oder ad – berg96