如何使用SQLite的Windows窗体应用程序文件?

时间:2009-01-28 22:45:02

标签: sql winforms sqlite

我正在编写一个新的Windows Forms 2.0应用程序。这个应用程序将有一个数据文件。用户可以打开数据文件,做一些工作并将其保存到磁盘。然后他就可以打开它,继续工作。与Microsoft Word和.doc文件相同。

我想将SQLite用于数据文件。但是,我不希望将更改立即写入数据文件。我希望用户更改数据,但磁盘上的文件保持不变。 仅当用户点击“保存”时,才会更改磁盘上的数据文件。

在您看来,最好的方法是什么?

我应该将SQLite数据库的内容加载到内存中,也可以将其映射到对象,并在用户点击“保存”时回写它?

或者......有没有办法使用SQL命令(没有对象)处理数据文件,但只保留内存中的更改,直到单击“保存”?

我有点困惑,我很欣赏任何关于最佳实践的想法。

干杯

4 个答案:

答案 0 :(得分:2)

1)启动时,制作Sqlite文件的临时副本。这将是你的“工作档案”。

2)针对工作文件运行所有INSERT / UPDATE / DELETE。当用户单击“保存”时,将工作文件复制到原始文件上。

3)删除工作文件并转到步骤#1。

答案 1 :(得分:1)

根据您的方案,您还可以将SQL包装在事务中(BEGIN TRANSACTION;),当用户单击“保存”时,提交事务;如果用户单击取消,则回滚事务。

答案 2 :(得分:0)

当用户输入编辑表单时加载数据。如果他单击保存,则单击更新/插入。如果没有,那么只需关闭表单而不进行任何数据库操作。

答案 3 :(得分:0)

临时文件。

使用XML或其他易于解析的格式,将数据保存到磁盘上的临时文件中。用户保存文件时,将该日期转储到数据库中。

如果机器死机或程序崩溃,这将为您提供“用户点击时保存”功能以及一些冗余功能。