【问题标题】:.ExecuteNonQuerry() error in SQLlite using C#使用 C# 的 SQLite 中的 .ExecuteNonQuery() 错误
【发布时间】:2016-08-07 09:41:21
【问题描述】:

在谷歌和这里的许多帖子中搜索,但我仍然无法为我的程序找到解决方案。 所以代码:

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

这是我得到的错误。

如何解决这个问题?这段时间我尝试了很多东西,但看起来仍然无法解决问题。

【问题讨论】:

    标签: c# sqlite


    【解决方案1】:

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

    等等,对于所有参数。

    【讨论】:

    • AdWithValue 不起作用。它显示一个错误。 "SQLiteParameterCollection 不包含 'AdWithValue' 的定义
    • 你可以试试 AddWithValue (两个 d's) 吗?像这样:SelectCommand.Parameters.AddWithValue("@Emri", str1);
    • 对于 SelectCommand.Parameters 它刚刚添加。没有其他包含添加或广告
    • 试试这个:SelectCommand.Parameters.Add(new SQLiteParameter("@Emri", str1));
    • 现在好像知道sqliteParameter了,但是str1需要转成DbType。
    猜你喜欢
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多