我目前正在使用C#和SQLite编写代码。抛出错误说明数据库在消息框中被锁定了两次。
该查询适用于SQLite数据库浏览器,但是当它放在C#代码中时会抛出错误。
这是给我一个错误的代码:
if(isset($_POST['insert']))
等号似乎存在问题,算术过程可能有问题。
完整代码:
cmd.CommandText = "UPDATE customers SET Bill = Bill - "+textBox2.Text+" WHERE customers.CustomerID = " + textBox1.Text + ";";
更新:
将格式更改为 SQLiteConnection myconn = new SQLiteConnection(@"Data Source = C:\Users\chick\Newspaper.db");
SQLiteCommand cmd = myconn.CreateCommand();
cmd.CommandText = "UPDATE customers SET Bill = (Bill - "+textBox2.Text+") WHERE customers.CustomerID = " + textBox1.Text + ";";
myconn.Open();
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Succesfully Update");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
,但仍然无效。程序崩溃
新守则:
using() {}
答案 0 :(得分:1)
问题是该程序(或某些其他程序)的某些其他部分仍然存在活动事务。
您必须正确清理访问数据库的所有命令,即在任何地方使用using
。
答案 1 :(得分:0)
感谢所有回答的人。我们意识到问题是我们从未在以前的代码中关闭过读者。