删除数据库,如果创建出错
本文关键字:创建 出错 如果 数据库 删除 | 更新日期: 2023-09-27 18:02:35
我创建了一个C#
应用程序,这个应用程序在第一次启动时创建一个数据库,这个database
是一个SQLiteDatabase
,它将存储在项目文件夹中。填充这个database
的过程需要一个中档笔记本大约5到10秒。因此,在低预算的笔记本电脑上,它的运行速度会变慢。这不是一个大的机会,但如果有人强行关闭应用程序,而database
正在创建?或者如果发生电源故障怎么办?这样做的结果将出现在一个破碎的database
,这将永远不会工作。
我正在c#
中创建我的Database
,并从c#
填充它,这发生在try
和catch
中,我应该在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