.net Windows应用程序离线存储数据,有网络时存储到数据库

本文关键字:存储 网络 数据库 数据 Windows 应用程序 离线 net | 更新日期: 2023-09-27 18:11:47

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

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

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

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

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

我更喜欢用c#, Visual studio。

谢谢。

.net Windows应用程序离线存储数据,有网络时存储到数据库

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

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

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

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

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

如果你一直想在便携式设备上使用SQL server,那就太耗电池了!!,您可能需要检查Microsoft Sync框架,因为它提供了几乎所有可能的场景来处理数据同步,管理冲突等。

谢谢你的回答。请看下面我们实施的解决方案。

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

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

面临的问题:

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

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

欢呼,Jebli