简体   繁体   English

使用C#的SQLlite中的.ExecuteNonQuerry()错误

[英].ExecuteNonQuerry() error in SQLlite using C#

searching in google, and in many posts here, but still I have not been able to find a solution for my program. 在google和此处的许多帖子中进行搜索,但仍然无法为我的程序找到解决方案。 so the code: 所以代码:

      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 error I get. 这是我得到的错误。

这是我得到的问题

how to fix this? 如何解决这个问题? I've tried many things over the time, and still looks like nothing can fix it. 一段时间以来,我尝试了很多事情,但看起来仍然无法解决。

You might want to try to use a parameterized statement to avoid possible issues with apostrophes in C# string variables when they become part of the SQL query. 您可能想尝试使用参数化语句,以避免当C#字符串变量成为SQL查询的一部分时,撇号可能引起的问题。

For example: 例如:

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

Or you can do: 或者,您可以执行以下操作:

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

And so on, for all parameters. 对于所有参数,依此类推。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM