相关疑难解决方法(0)

即使在连接关闭后,SQLite也会使数据库保持锁定状态

我在ASP.NET应用程序(框架4.0)中使用System.Data.SQLite提供程序.我遇到的问题是,当我在SQLite数据库的表中插入某些内容时,数据库会被锁定,即使在连接处理后锁也没有被释放.

尝试访问该文件时,错误是:"进程无法访问文件'catalog.sqlite',因为它正由另一个进程使用."

我的代码非常简单,我打开连接,从SQLServer数据库读取一些数据,将数据插入SQLite(通过SQLiteDataAdapter),然后关闭连接并处置所有内容以保证安全.但是,当我在填充数据后尝试压缩文件时,我得到了这个错误.

我已经在StackOverflow上阅读了所有类型的建议,但没有一个能帮助解决问题(关闭防病毒软件,更改事务模型,在压缩文件之前等待几秒钟,将所有插入调用包装到事务中,等等.但没有人帮助解决这个问题.

也许有一些特定于ASP.NET的东西(多线程是问题?即使我在开发机器上测试它,只有一个调用该函数而没有并发?)

作为旁注,我尝试避免使用DataTable和SQLiteDataAdapter,并且直接使用SQLiteCommand,这样就可以实现魅力.当然,我可以继续将查询构建为字符串而不是使用数据适配器,但是当有一个构建框架时,我发现它有点尴尬.

c# sqlite system.data.sqlite

36
推荐指数
4
解决办法
4万
查看次数

标签 统计

c# ×1

sqlite ×1

system.data.sqlite ×1