簡體   English   中英

如何在C#中解決SQLite“數據庫已鎖定”?

[英]How to solve the SQLite “Database is locked” in C#?

當我更新某些數據時,有時會引發異常: 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可以,但是其他SalesID可以例外。 為什么?

一個常見的原因是您有一個懸空的sqlcommand。 sqlcommands在數據庫上持有鎖。 對於sqlreaders來說也是一樣。 確保它們都在使用塊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM