当我更新某些数据时,有时它会引发异常:Database is locked
。
以下代码:
public int DisableSalesBySalesID(string SalesID)
{
int count = 0;
try
{
using (SQLiteConnection conn = new SQLiteConnection(ConnectionString))
{
conn.Open();
string sql = @"update SalesMaster set Disabled = '1' where SalesID=@SalesID";
using (SQLiteCommand cmd = new SQLiteCommand(sql, conn))
{
cmd.Parameters.Add(new SQLiteParameter("@SalesID", SalesID));
count = cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
}
return count;
}
而且,这取决于SalesID
。有些SalesID
会好的,但其他人会成为例外。为什么呢?
答案 0 :(得分:0)
一个常见的原因是你有一个悬空的sqlcommand。 sqlcommands保存数据库上的锁。同样适用于sqlreaders。确保他们都在使用块