【问题标题】:How to use SQLite for windows forms application file?如何将 SQLite 用于 Windows 窗体应用程序文件?
【发布时间】:2010-10-04 03:16:44
【问题描述】:

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

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

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

我是否应该将 SQLite DB 的内容加载到内存中,或者将其映射到对象,并在用户单击“保存”时将其写回?

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

我有点困惑,如果有任何关于此最佳实践的想法,我将不胜感激。

干杯

【问题讨论】:

    标签: sql winforms sqlite


    【解决方案1】:

    根据你的场景,你也可以将你的SQL封装在一个事务中(BEGIN TRANSACTION;),当用户点击保存时,提交事务;如果用户点击取消,则回滚事务。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        临时文件。

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

        这为您提供了用户点击时的保存功能以及在机器死机或程序崩溃时的一些冗余。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-26
            • 2019-02-14
            • 1970-01-01
            • 1970-01-01
            • 2014-02-23
            相关资源
            最近更新 更多