私は別の製品(既存のものではない)から既存のSQLiteDBを編集しています。コード内のDBが次の例外を受け取ります: "ファイルがデータベースファイルではないファイルが暗号化されているか、データベースではありません"C#SQLite DBがファイルが暗号化されているときに開くことができないか、データベースではありません
私はDBが暗号化されており、それを編集する!しかし、私はSQLiteのDBブラウザを使用し、DBは問題なく開き、パスワードなどを要求しません。
これでSQLite DB Browserを使用してDBを暗号化し、パスワードを空白のままにしました。コード内のDBは、私の問題は、このサードパーティのアプリケーションがそのDBにアクセスするたびに、何かをしています。私は上記の手順をやり直すまで、コードで再び開くことができません。
いずれかが、私は以下の私のコードのsnippitが含まれているこのような現象を発生させることができるものについての任意の手掛かりを持っています:事前に
// Build the connection string.
lstrFullConnectionString = @"Data Source =" + lstrDBPathAndFileName + "; Version=" + lstrDBVersion + "; New=" + lstrDBNew + ";";
mobjSQLCon = new SQLiteConnection(lstrFullConnectionString);
try
{// Fails at connection open....
mobjSQLCon.Open();
lblConnectionStatus.Text = "Status: Connected";
btnSQLiteConnect.Text = "Disconnect";
}
おかげで、 ルーク
は '私の仮定は、DBを見つける、と仮定いけないencrypted'であるということです。他のアプリケーションがそれを使用した後、ファイルに移動し、それが大きすぎない場合は、16進表示やノートパッドで開く。暗号化されている場合は、中国語のように見えます。 – Plutonix
こんにちはPlutonix、ありがとうあなたの応答私はメモ帳+ +内の16進エディタプラグインを使用してDBを開いて、私は暗号化されていない情報を見ることができます。私はその後、Notepad ++だけを使って、Contracts.dbとContracts-SetBlankEncyption.dbの間のテキストと違いを見てみました。内容には目立った違いがありますが、もう一度読むことができます。ブランクの暗号化が意味することは、空のパスワードを設定してSQLite DBブラウザを使用して暗号化を削除することです。 – Luke
認識可能なデータが表示され、暗号化されていない場合。例外は、あなたが暗号化されていないデータベースを使用しようとするとスローされますが、conn strにPWがあります。 – Plutonix