尝试写入只读数据库经过20分钟的重复查询

本文关键字:20分钟 查询 经过 数据库 只读 | 更新日期: 2023-09-27 18:00:00

我的应用程序每3秒对SQLite数据库进行一次查询,但大约20分钟后,在执行命令时,它抛出异常"Attempt to write a readonly database"。我只需要阅读数据库。

进口:

using System.Data.Sqlite;

这是我的连接字符串:

sqlite_conn = new SQLiteConnection("Data Source=Patch_here;Version=3;Compress=True;Read Only=True"

这是抛出excepcion的方法。此方法每3秒执行一次:

Double fecha = 0;
try
{
    sqlite_cmd = new SQLiteCommand(sqlite_conn);
    sqlite_cmd.CommandText = "SELECT MAX(timestamp) FROM Messages";
    //HERE throws the exception, when executes the command.
    fecha = Double.Parse(sqlite_cmd.ExecuteScalar().ToString()); 
    sqlite_cmd.Dispose();
}
catch (Exception ex)
{
     informarError(ex.Message);
}
return timestamp_To_Datetime(fecha);

此外,-我的用户拥有此数据库的所有权限。-我的SQLiteConnection只为所有查询打开一次。

我能做什么?谢谢

尝试写入只读数据库经过20分钟的重复查询

(我知道,这太旧了。也许这对另一个人有帮助。)

我也遇到了类似的问题:数据库处于(写)负载下(用C/C++程序填充)。同时,C#程序周期性地发送一个选择计数(*)。有时(非常罕见),除了提到的错误。

我通过从连接字符串中删除"只读=真"来"解决"这个问题。