【问题标题】:.net windows application store data offline and store to db when there is network.net windows应用程序离线存储数据并在有网络时存储到db
【发布时间】:2014-07-07 08:02:21
【问题描述】:

我正在开发一个用于农业目的的 Windows 应用程序。多个用户将使用此应用程序来维护数据。主要问题是工作地点没有网络连接。但是,如果有任何选择,他们可以在一天结束时进行同步。

我只是想知道如何在本地导入和存储所有数据,并在有网络的情况下将数据更新到数据库。

我认为的选项是在运行此应用程序的每台机器上都有 SQL。在没有网络的情况下将数据存储到本地数据库中。

有网络时有单独的按钮将本地数据导出到集中数据库。

看起来这很复杂。有没有更好更简单的选择。

我更喜欢使用 c#、Visual Studio。

谢谢。

【问题讨论】:

  • 数据同步复杂吗?是否会在“离线”模式下更新数据,还是只是添加新数据?离线模式下多人同时修改数据有什么危险吗?

标签: c# sql windows


【解决方案1】:

您可以使用SQLite 在本地存储数据。它是快速、轻量级的公共领域。

您可以为集中式服务器使用任何选择的数据库。

【讨论】:

  • 同意 - SQL Lite 是本地数据存储的绝佳选择,因为您不需要安装 SQL Server 之类的东西。您可以使用实体框架连接到它(我们遇到了 EF 6 的问题,但 EF 5 运行良好)。有一个方便的 firefox 插件可以为您提供一个用于设置初始数据库的 GUI。
【解决方案2】:

嗯,这是一个相当广泛的问题,因为它有很多选项和场景。您应该问自己的问题是:

  1. 用户是只处理新信息还是处理来自任何其他用户的任何信息?
  2. 您必须处理更新冲突吗?
  3. 您是只处理文本信息还是处理复杂类型和二进制文件?

至于解决方案,在我看来,最简单的方法是在便携式设备上使用 SQL Lite,它是一个轻量级的 SQL 客户端,可以让您轻松处理信息。在服务器上,您可以使用任何您想要的东西,SQL Server、MySQL 或您可能喜欢的任何其他 SQL 风格。只需确保您的便携式设备操作系统有一个连接器即可。

如果您一直想在便携式设备上使用 SQL Server,那真是太耗电了!!!,您可能需要查看Microsoft Sync framework,因为它提供了处理数据同步、管理冲突等几乎所有可能的方案。

【讨论】:

    【解决方案3】:

    感谢您的回答。请找到我们实施的以下解决方案。

    1) 在所有本地机器上安装 SQL express

    2) 使用 Microsoft Sync 框架来同步数据。同步是按需配置的。

    面临的问题:

    1) 我们在少数表上使用几何数据类型,而同步框架不支持这一点。

    2) 数据库架构中的任何更改都不会反映在客户端计算机上。我们将不得不删除所有用于跟踪表更改并重新生成它的系统生成程序。我相信会有更好的方法来做到这一点。

    干杯, 杰布利

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2014-12-09
      • 2012-12-16
      相关资源
      最近更新 更多