2016-10-15 13 views
1

データベースの暗号化キーをDB Browser for SQLiteに設定しましたが、C#でアクセスできません。 「ファイルが暗号化されているか、データベースではありません」:System.Data.SQLite - 暗号化されたデータベースにアクセスできない

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ブラウザで指定されたキーは、パスワードとは異なるものですか?

+0

あなたが実際にいくつかの時点でそれを暗号化しました:

ここでは、コードですか?暗号化されていないDBファイルでPWを使用すると、間違ったPWと同じエラーが発生する – Plutonix

+0

わかりません。暗号化キーを設定するとファイルが暗号化されているはずです。 – mkkekkonen

+0

DBBrowserではどこでそれを行いますか?私は決してどこに暗号化について何を伝えるべきか分かりませんでした。PW – Plutonix

答えて

1

私は暗号化によってパスワードの設定を処理することにしました。パスワードを設定/消去するための新しいプロジェクトを作成しました。

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); 
    } 
関連する問題