繁体   English   中英

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

[英]System.Data.SQLite - cannot access an encrypted database

我在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;
    }

DB 浏览器中指定的密钥与密码不同吗?

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

这是代码:

    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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM