解决方案 »

  1.   

    已经解决了,sqlite只支持一写多读,同时只能写入一个,而读可以多个同时进行,如果读写同时进行,就会报这样的错,在机子配置比较差的时候这种情况很难出现,但好一点的就会出现了,而且机子越好,报错的机率越大,因为CPU执行得快,同时读写的机率也就大了。解决方法是把数据库连接做成单例加锁,不过这样在多线程的时候因为锁会变得很慢,暂时还没找到其他方法,好像基本无解,还有其他可行方法的告诉我一下。
      

  2.   

    大家帮我推荐个数据库吧http://bbs.csdn.net/topics/390933546
    不用sqlite了,好郁闷
      

  3.   

    sqlite是用做嵌入式或是移动端开发的,这类产品中基本上都是单线程执行。不适合用在多线程并发情况下。
      

  4.   

    是有这种问题,sqlite处于写的状态,新的写请求将不会得到响应,也就是出现“database is locked"。
    处于写状态,读请求应该会响应的吧?!
    在一个写请求未完成之前,其他写请求排队。
      

  5.   

    那有其他的数据库推荐下没SQL Server 2012 Express。不过我使用 MongoDB。如果你想使用嵌入式数据库,可以使用 SQL Server Compact(通过你的vs使用 NuGet 下载即可)。
      

  6.   

    那有其他的数据库推荐下没SQL Server 2012 Express。不过我使用 MongoDB。如果你想使用嵌入式数据库,可以使用 SQL Server Compact(通过你的vs使用 NuGet 下载即可)。
    谢谢回答,我的软件是给客户使用的,sql server太大型了,客户机上安装不方便,芒果数据库是非关系数据库,这个没怎么了解过,如果换他的话改动的代码应该比较大吧,除了SQL Server Compact,还有其他没