为了账号安全,请及时绑定邮箱和手机立即绑定

System.Data.SQLite Close()不释放数据库文件

System.Data.SQLite Close()不释放数据库文件

牛魔王的故事 2019-09-02 10:58:15
在尝试删除文件之前,我在关闭数据库时遇到问题。代码就是这样 myconnection.Close();     File.Delete(filename);并且Delete抛出了一个异常,即该文件仍在使用中。几分钟后我在调试器中重新尝试了Delete(),所以这不是时间问题。我有事务代码,但在Close()调用之前它根本不运行。所以我很确定这不是一个开放的交易。打开和关闭之间的sql命令只是选择。ProcMon显示我的程序和我的防病毒软件查看数据库文件。它没有显示我的程序在close()之后释放db文件。Visual Studio 2010,C#,System.Data.SQLite版本1.0.77.0,Win7我看到一个两岁的bug就像这样,但更新日志说它已修复。还有什么我可以检查的吗?有没有办法获得任何打开的命令或事务的列表?新的工作代码: db.Close(); GC.Collect();   // yes, really release the db bool worked = false; int tries = 1; while ((tries < 4) && (!worked)) {    try    {       Thread.Sleep(tries * 100);       File.Delete(filename);       worked = true;    }    catch (IOException e)   // delete only throws this on locking    {       tries++;    } } if (!worked)    throw new IOException("Unable to close file" + filename);
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 1207 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信