.net窗口应用程序存储数据脱机,并存储到数据库,当有networking

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

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

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

有networking时,有一个单独的button将本地数据导出到集中式数据库。

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

我更喜欢使用C#,Visual Studio。

谢谢。

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

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

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

  1. 用户是否仅处理新的信息或来自以前同步的任何其他用户的任何信息?
  2. 你必须处理更新冲突?
  3. 你只处理文本信息,或者你有复杂的类型和二进制文件?

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

如果你一直在考虑在便携式设备上使用SQL服务器,那么它就是一个电池霸王!你可能想要检查微软同步框架 ,因为它提供了处理数据同步,管理冲突等几乎所有可能的场景。

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

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

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

面临的问题:

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

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

干杯,Jebli