【问题标题】:How to use WHERE statement in sqlite如何在 sqlite 中使用 WHERE 语句
【发布时间】:2021-05-29 16:31:17
【问题描述】:

我已经得到了 sqlite 查询来删除数据库中的一个按钮,单击按钮现在一切正常,我不需要最后有第二个 WHERE 语句。毫无疑问,我需要稍微清理一下我的代码,但我只是想确保它首先能正常工作

        private void btn_Delete_Click(object sender, EventArgs e)
    {
        DialogResult dialogResult = MessageBox.Show("Are you sure you want to delete this account?", "Confirm Delete", MessageBoxButtons.YesNo);
        if (dialogResult == DialogResult.Yes)
        {
            connAccount.Open();
            using (SQLiteCommand cmd = connAccount.CreateCommand())
            {

                // adds customers details to the database
                cmd.CommandText = @"DELETE FROM account WHERE accid = '" + Global.selectedAccountID.ToString() + "';";
                MessageBox.Show("Account Deleted", "Account Deleted", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cmd.ExecuteNonQuery();
                connAccount.Close();

            }

        }
        if(dialogResult == DialogResult.No)
        {
            
        }
        if (cb_active.SelectedIndex == 0)
        {
            active();
        }
        if (cb_active.SelectedIndex == 1)
        {
            inactive();
        }
        else
        {
            showAccounts();
        }
        cb_active.SelectedIndex = -1;
        connAccount.Close();

    }

【问题讨论】:

  • DGV 不会自动重绘。所以你必须再次读取数据库。确保重新绘制 DGV 将数据源设置为 null : datagridview1.DataSource = null; datagridview1.DataSource = dt.
  • SQL Injection alert - 您应该将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables
  • 我不是 C# 专家,但我猜 ExecuteDeleteQuery() 是一个自定义方法,它实际上执行删除操作。所以你应该发布它的代码。
  • 什么类型是 custid 并且在您的数据库中处于活动状态
  • ExecuteNonQuery()的返回值为删除的行数,可以查看:docs.microsoft.com/en-us/dotnet/api/…

标签: c# winforms sqlite


【解决方案1】:

请检查deleteQuery的值是否正确,如下:

  1. 复制 deleteQuery 的值
  2. 将值(一个 SQL 脚本)粘贴到 SSMS 中
  3. 在 SSMS 中执行 SQL 脚本并检查它是否运行没有任何错误。

【讨论】:

    【解决方案2】:

    请使用绑定变量!只要你使用文字——你总会遇到类似的问题

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多