我在 DB Browser for SQLite 中为我的数据库设置了加密 key 现在我无法在 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;
}
数据库浏览器中指定的 key 与密码不同吗?
最佳答案
我决定通过编码来设置密码,它有效。我创建了一个用于设置/清除密码的新项目。
代码如下:
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);
}
关于c# - System.Data.SQLite - 无法访问加密数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061094/