SQLite尝试编写只读数据库错误
我有一个填充SQLite数据库的控制台应用程序。 当应用程序自行运行时,我不会收到任何错误。 如果我运行应用程序的多个实例,其中每个应用程序都在自己的文件夹中,并且每个应用程序都填充自己的数据库,我偶尔会遇到以下exception:
System.Data.SQLite.SQLiteException (0x80004005): Attempt to write a read-only database attempt to write a readonly database at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt) at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt) at System.Data.SQLite.SQLiteDataReader.NextResult() at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave) at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior) at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
我知道DB不是只读的,因为它已经将数据写入该数据库。 此外,应用程序继续并将继续将数据填充到该数据库。 当只有一个应用程序实例正在运行时,我没有重现错误。
我已经尝试使用pragma将journal和temp_store都放在内存而不是文件中以防万一在那里可能存在一些争用,但我仍然得到错误。 我总是在同一个方法中得到错误,这是第一次为连接发生插入。 为了大致了解应用程序的作用,它会循环遍历案例,收集有关这些案例的信息(而不是来自SQLite),然后将结果写入SQLite数据库。
我不知道还有什么可以尝试的。
*编辑我也在使用PRAGMA journal_mode = MEMORY。 在将数据插入SQLite数据库时,我首先运行BEGIN语句,然后在END语句之前运行一堆插入。 第一个插入时发生错误。
这是一个权限问题。
确保托管的Web应用程序具有对sqlite数据库所在文件夹的添加/写入/创建/删除访问权限。
有关详细信息,请参阅此处
也可能是MigrationAssembly不支持数据库文件。
当EF尝试迁移到期望为SQL的数据库的文件时,抛出相同的exception。 一个文本文件。
上述就是C#学习教程:SQLite尝试编写只读数据库错误分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/997301.html