删除数据库,如果创建出错

本文关键字:创建 出错 如果 数据库 删除 | 更新日期: 2023-09-27 18:02:35

我创建了一个C#应用程序,这个应用程序在第一次启动时创建一个数据库,这个database是一个SQLiteDatabase,它将存储在项目文件夹中。填充这个database的过程需要一个中档笔记本大约5到10秒。因此,在低预算的笔记本电脑上,它的运行速度会变慢。这不是一个大的机会,但如果有人强行关闭应用程序,而database正在创建?或者如果发生电源故障怎么办?这样做的结果将出现在一个破碎的database,这将永远不会工作。

我正在c#中创建我的Database,并从c#填充它,这发生在trycatch中,我应该在catch中的代码被调用时delete Database吗?我的应用程序在应用程序开始时检查是否已经有database是或否?如果没有,它将被创建

我该怎么办?Delete database当错误发生时(代码通过catch),或者有人有更好的解决我的问题?

提前感谢!

编辑:

一些答案已经给了我:

我看到了下面的代码,我该如何使用这段代码?我应该把代码,创建我的数据库在CallAMethodThatDoesSomeWork方法?

using(TransactionScope tran = new TransactionScope()) {
    CallAMethodThatDoesSomeWork();
    CallAMethodThatDoesSomeMoreWork();
    tran.Complete();
}

删除数据库,如果创建出错

您应该使用transactions并创建在其下使用数据库的所有命令。如果应用程序崩溃,将不会创建任何内容。这是一种标准的方法。例如这里

Sqlite似乎支持事务。因此,打开一个事务,然后填充数据,并在完成后仅填充COMMIT

无论何时启动应用程序,都可以检查数据库中是否有没有数据(在这种情况下,上次尝试填充它时出现了错误)。

为什么不使用开始和提交事务呢?如果出现错误,回滚事务。

有关事务的更多信息,请参阅下面的链接。

http://www.sqlite.org/lang_transaction.html