如何在C#中解决SQLite“数据库被锁定”?

时间:2015-10-12 15:52:03

标签: c# sqlite

当我更新某些数据时,有时它会引发异常: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会好的,但其他人会成为例外。为什么呢?

1 个答案:

答案 0 :(得分:0)

一个常见的原因是你有一个悬空的sqlcommand。 sqlcommands保存数据库上的锁。同样适用于sqlreaders。确保他们都在使用块