.net windows应用程序存储数据离线并在有网络时存储到数据库

时间:2014-07-07 08:02:22

标签: c# sql windows

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

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

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

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

看起来这很复杂。有没有更好更容易的选择。

我更喜欢使用c#,Visual studio。

感谢。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

  1. 用户是否仅处理新信息或来自先前同步的任何其他用户的任何信息?
  2. 您是否必须处理更新冲突?
  3. 您是仅处理文本信息还是复杂类型和二进制文件?
  4. 至于解决方案,从我的角度来看,最简单的方法是在便携式设备上使用SQL Lite,它是一个轻量级的SQL客户端,可以让您轻松处理信息。在服务器上,您可以使用任何您想要的,SQL Server,MySQL或您可能喜欢的任何其他SQL风格。只需确保便携式设备操作系统有连接器。

    如果您一直考虑在便携式设备上使用SQL服务器,那么它可能需要检查Microsoft Sync framework,因为它几乎提供了处理数据同步的所有可能方案,管理冲突等。

答案 2 :(得分:0)

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

1)在所有本地计算机上安装SQL Express

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

面临的问题:

1)我们在几个表上使用几何数据类型,同步框架不支持这种情况。

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

干杯, Jebli

相关问题