2011-01-02 4 views
3

Ich bekomme "System.Data.SQLite.SQLiteException: Kann die Datenbankdatei nicht öffnen." wenn ich versuche, auf die Datenbank zuzugreifen, um einen Datensatz beim "ersten" Öffnen meines Programms zu speichern.C# .net -> SQLite-Fehler: Die Datenbankdatei konnte nicht geöffnet werden

Hier ist die Sache, es funktioniert gut beim Debuggen lokal in Visual Studio, aber funktioniert nicht mehr, wenn ich das Programm in einem Installer verpacken, und installieren Sie das Programm irgendwo.

Ich vermute, dass es der Speicherort der Datenbank war, die ich gerade auf database.s3db ohne einen Pfad festgelegt habe, weil es neben der Exe des Programms gespeichert ist, aber wie könnte das zu Problemen führen?

Ich bin ratlos, weitere Ideen oder Vorschläge zur Lösung dieses Problems würden sehr geschätzt werden.

Antwort

5

Möglicherweise installieren Sie das Programm in einem Ordner, in dem der Benutzer keine Schreibberechtigungen hat, sodass die Datenbankdatei nicht geändert werden kann.

+0

Das war genau das. Warum hat ProgramFiles Orte, die nicht geändert werden können? Ändern die meisten Programme ihre eigenen Dateien nicht? – CODe

+2

@CODE, nein, ab Windows Vista hat nur der Administrator Schreibrechte für den Ordner der Programmdateien. Sie müssen den entsprechenden Ordner 'c: \ users \ AccountName' verwenden, um benutzerspezifische Dateien zu speichern. –

+8

"Warum hat ProgramFiles Orte, die nicht geändert werden können?" Um es schwieriger für Malware (Virus, Trojaner) zu machen, sich selbst zu installieren – k3b