Löschen von sqlite db-Datei

Ich bin der Entwicklung einer C# - Anwendung mit backend sqlite. In meiner Anwendung habe ich einen button für die Bereinigung der Datenbank (löschen der .db-Datei und erstellen Sie es erneut mit einigen anfänglichen Daten). Manchmal, wenn ich versuche zu löschen, die db sagt, es kann nicht gelöscht werden, weil es von einem anderen Prozess verwendet. Vor dem löschen bin ich über die enge Verbindung, entsorgen und klaren pool-Funktionen. Selbst dann wirft er die gleiche Ausnahme. Hier ist mein code:

string targetDataBaseFilePath = Path.Combine(dataDirectoryPath, "local.db");               
ThingzDatabase.Create(targetDataBaseFilePath, "touchdb");

In der create-Funktion definiere ich den folgenden code, von wo bekomme ich die Fehlermeldung:

if (File.Exists(DatabaseFileName))
{
    try
    {
        ThingzDatabase.localdb.conn.Close();
        ThingzDatabase.localdb.conn.Dispose();
        SQLiteConnection.ClearAllPools();
    }
    catch (Exception)
    {
    }
    File.Delete(DatabaseFileName); //error throws from here.                       
}

Wie kann ich verhindern, dass des Fehlers geworfen?

InformationsquelleAutor user703526 | 2011-06-17
Schreibe einen Kommentar