Mono.Data.Sqlite.SqliteConnection.SetConfig抛出一个库使用错误的异常

时间:2013-03-15 14:20:56

标签: c# android xamarin.android xamarin

使用Xamarin.Android,我尝试使用Mono.Data.Sqlite包(使用Nexus 7)使用sqlite数据库。

一切都很好,直到我尝试使用多个线程,然后我得到一个损坏的数据库或锁定数据库的各种异常(意味着我必须停止并重新启动应用程序才能再次访问数据库)。

根据建议[{3}}我尝试在我的应用中尽早执行以下代码:

Mono.Data.Sqlite.SqliteConnection.SetConfig (Mono.Data.Sqlite.SQLiteConfig.Serialized);

但是我在该行上得到一个Mono.Data.Sqlite.SqliteException:

Library used incorrectly

我已尝试使用3个可能的枚举(单线程,序列化,多线程),但结果相同。

这种方法有用吗?


编辑:我修复了我的源代码问题(那些令人讨厌的无限循环,我永远不会摆脱它......),所以不再需要为我使用线程配置了。

我会把这个问题留给其他人,因为问题仍在这里,并且是由其他人试验的(here

1 个答案:

答案 0 :(得分:0)

对于它的价值,我发现SQLite在对数据库进行写入时尝试访问非常敏感。话虽如此,我并不是非常反对我的。但是我确实想提一下,你可以通过可读访问和多线程获得好运。如果您还没有这样做,我建议使用显式写入/读取路径来调用它。我在我的代码中使用它来简化,

         protected SQLiteConnection ReadableDB
         {
             get{return new SQLiteConnection(ReadableDatabase.Path);}
          }

         protected SQLiteConnection WriteableDB
         {
             get{return new SQLiteConnection(WritableDatabase.Path);
         }