バックエンドが sqlite の C# アプリケーションを開発しています。私のアプリケーションには、データベースを消去するためのボタンがあります (.db ファイルを削除し、初期データを使用して再度作成します)。データベースを削除しようとすると、別のプロセスで使用されているため削除できないと表示されることがあります。それを削除する前に、私はクローズ接続、破棄、およびプール機能のクリアを使用しています。それでも同じ例外がスローされます。これが私のコードです:
string targetDataBaseFilePath = Path.Combine(dataDirectoryPath, "local.db");
ThingzDatabase.Create(targetDataBaseFilePath, "touchdb");
create 関数で、次のコードを定義します。ここからエラーが発生します。
if (File.Exists(DatabaseFileName))
{
try
{
ThingzDatabase.localdb.conn.Close();
ThingzDatabase.localdb.conn.Dispose();
SQLiteConnection.ClearAllPools();
}
catch (Exception)
{
}
File.Delete(DatabaseFileName); //error throws from here.
}
エラーがスローされないようにするにはどうすればよいですか?