我创建了一个C#
应用程序,该应用程序在首次启动时创建了一个数据库,database
这个SQLiteDatabase
将存储在项目文件夹中。填写此database
的过程需要5到10秒左右的中档笔记本。所以在低预算的笔记本电脑上会慢一些。没有太大的机会,但如果有人强制关闭应用程序,而database
正在创建中,该怎么办?或者如果发生电源故障怎么办?这样做的结果将出现在一个破碎的database
中,这将永远不会奏效。
我正在Database
中创建我的c#
,并在c#
填写,try
和catch
内的delete
{我是Database
每当catch
中的代码被调用时,{} {}为database
?我的应用程序在应用程序开始时检查是否已经有Delete
是或否?如果没有,它将被创建。
我该怎么办?发生错误时database
catch
(代码通过using(TransactionScope tran = new TransactionScope()) {
CallAMethodThatDoesSomeWork();
CallAMethodThatDoesSomeMoreWork();
tran.Complete();
}
)或者有人为我的问题找到了更好的解决方案吗?
提前致谢!
编辑:
我得到了一些答案:
我看到以下代码,我该如何使用这段代码?我应该将创建我的数据库的代码放在CallAMethodThatDoesSomeWork方法中吗?
{{1}}
答案 0 :(得分:2)
您应该使用事务并创建在其下使用数据库的所有命令。 如果应用程序崩溃,则不会创建任何内容。 这是一种标准方法。 例如,请参阅here
答案 1 :(得分:2)
Sqlite似乎支持transactions。因此,打开一个事务,然后填充数据,只有COMMIT
才能完成。
每当您的应用程序启动时,您都可以确定数据库中是否存在 no 数据(在这种情况下,上次尝试填充时出现问题)。
答案 2 :(得分:0)