System.Data.SQLite-无法访问加密的数据库 - c#

我在DB Browser for SQLite中为数据库设置了加密密钥,现在无法在C#中访问它。

以下是相关代码:

    private SQLiteConnection connection;

    public DbManager()
    {
        connection = new SQLiteConnection("Data Source=DB\\gamedb.encrypted.sqlite;Password=p4ssw0rd;Version=3;");
        connection.Open();
    }

下面的SQLiteCommand引发异常:“文件已加密或不是数据库”。

    public Dictionary<string, string> ReadMaps()
    {
        SQLiteDataReader reader = new SQLiteCommand("select * from Map", connection).ExecuteReader();
        Dictionary<string, string> res = new Dictionary<string, string>();
        while (reader.Read())
            res[(string)reader["Name"]] = (string)reader["Data"];
        return res;
    }

数据库浏览器中指定的密钥与密码不同吗?

参考方案

我决定通过编码来处理密码设置,它可以工作。我创建了一个用于设置/清除密码的新项目。

这是代码:

    SQLiteConnection conn;

    // (code omitted)

    private void setPwButton_Click(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(passwordTextBox.Text))
            conn.ChangePassword(passwordTextBox.Text);
        else
            MessageBox.Show("Please specify a password!");
    }

    private void clearPwButton_Click(object sender, EventArgs e)
    {
        conn.ChangePassword(String.Empty);
    }

更新System.Data.SQLite.dll后,SQLite无效URI - c#

我首先有以下SQLite版本:1.0.77.0(sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.77.0)而且一切正常。将System.Data.SQLite.dll更新到版本1.0.82.0(sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.82.0)…

SQLIte SUM日期时间 - c#

我有一个包含行和时间值的数据库。我想要该时间值的总和(通常,格式为%H:%M)。我这样使用SUM值:SELECT SUM(n_hores) FROM table; 但只有我得到0.0。我该怎么做?谢谢 参考方案 hh:mm格式的时间值为字符串,因此不能对字符串进行有意义的求和。您应该将这些时间值转换为数字(strftime(%s)返回自1970-01-01以…

如何解析Dapper System.Data.DataException HResult = 0x80131501 InvalidCastException从'System.String'到'System.Uri'的无效转换 - c#

最近,我重构了一些代码,这些代码导致将实体的某些属性的类型从System.String更改为System.URI。有问题的属性名称包含子字符串URI或URL,并且SonarLint静态代码分析器建议将代码重构为对这些属性使用System.URI类型而不是System.String,这在我们的解决方案中很有意义。在这个项目中,我们利用StackExchange…

System.Data.OleDb.OleDbException:INSERT INTO语句中的语法错误 - c#

public void RegisterUser(string passw,string uname ,string fname ,string lname, string email) { string strSql = @"INSERT INTO User (passw,uname,fname,lname,email) values (…

SQLite-无法连接数据库 - c#

背景:1.它是一个使用Sqlite databse的C#应用​​程序2.如果不存在db,则此应用程序将创建一个空的db,并将数据从服务器同步到该数据库。问题:1.有时应用程序突然崩溃。似乎有一些未处理的异常。2.即使我重新启动该应用程序,它也立即崩溃。临时解决方案:1.将数据库复制到其他位置,然后删除原始数据库。2.运行该应用程序。没有崩溃。由于不存在任何数…