【问题标题】:SQlite not updating recordsSQlite 不更新记录
【发布时间】:2018-06-09 20:29:09
【问题描述】:

我正在尝试更新表中的现有记录,这是表:

这是我的代码:

using (SQLiteConnection c = new SQLiteConnection(ConnectionString))
{
    c.Open();
    using (SQLiteCommand cmd = new SQLiteCommand())
    {
        try
        {
            string _FINAL_SQL = "UPDATE act_monthly_listings SET loan = " + GRAND_LOAN_TOTAL + " AND interest = " + INTEREST + " AND contr = " + GRANT_CONTRIBUTIONS + " AND payment = " + GRAND_PAYMENTS_TOTAL + " WHERE act = " + act + " AND year = " + year + " AND month = " + month + ";";
            cmd.CommandText = _FINAL_SQL;
            Clipboard.SetText(_FINAL_SQL);
            cmd.Connection = c;
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Clipboard.SetText(ex.ToString());
        }

    }
}

没有抛出错误或异常,但没有更新。

例如sql:

UPDATE act_monthly_listings SET loan = 60 AND interest = 6 AND contr = 0 AND payment = 100 WHERE act = 93 AND year = 2014 AND month = 3;

我希望看到以下记录条目被更新:

【问题讨论】:

  • Console.WriteLine(_FINAL_SQL); 打印什么?对数据库运行该语句以查看可能缺少的内容。
  • 我做了,我没有发现任何问题
  • 好吧,我们也看不出有什么问题,所以它必须按预期工作。你为什么不向我们展示你掌握的信息?向我们展示 _FINAL_SQL 并向我们展示您希望更新的数据库中的记录。
  • 刚刚按照您的要求用示例更新了问题
  • 您是否尝试在数据库管理器工具中运行查询?结果一样?

标签: c# .net sqlite sql-update executenonquery


【解决方案1】:

您的查询不正确,您不能在查询的 SET 部分使用“AND”关键字,您应该使用逗号“,”来分隔要更新的字段。

有关正确的 UPDATE 语句语法,请参阅文档: https://sqlite.org/lang_update.html

您的查询应该是:

UPDATE act_monthly_listings SET loan = 60, interest = 6, contr = 0, payment = 100 WHERE act = 93 AND year = 2014 AND month = 3;

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2023-03-06
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多