现在做一个wince 的项目,打算放弃用本地配置文件,而改用sqlite 。但是在使用中出现一个异常 “The database file is locked”。这个异常我找了很久都没发现。怀疑是sqlite 的bug。网上很多网友甚至放弃了使用sqlite而改用别的数据库,如 firebird。
呵呵,其实很简单。因为sqlite 的规则是读写分离。读的时候,不能写,写的时候,不能读。而我在应用中读了一个table 的数据用的 datareader 对象,而此对象没释放,又继续进行插入或修改操作。所以出错了。
但是我想遇到相同的问题,造成的原因不止是像我遇到的一样。但是只要记住sqlite 的原则: 读写分离。问题就应该解决了。
原文链接:https://www.f2er.com/sqlite/202962.html