Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用WPF、C同步两个SQLite数据库#_C#_.net_Sqlite_Sync - Fatal编程技术网

C# 用WPF、C同步两个SQLite数据库#

C# 用WPF、C同步两个SQLite数据库#,c#,.net,sqlite,sync,C#,.net,Sqlite,Sync,在我的应用程序中,我有一个本地数据库和一个服务器数据库。它们都是SQLite DBs。我需要使用C#代码同步这些(双向同步,即从服务器到客户端和客户端到服务器)。有n个本地系统和一台服务器 我的要求是用户将触发同步操作,我的意思是任何按钮点击事件。应用程序无法自动同步。甚至在应用程序加载时也没有 我已经搜索了Microsoft Sync Framework,但是我不可能使用它,因为所有使用该应用程序的本地系统都没有安装Sync Framework 代码应支持以下场景: 如果在服务器的表中插入新记

在我的应用程序中,我有一个本地数据库和一个服务器数据库。它们都是SQLite DBs。我需要使用C#代码同步这些(双向同步,即从服务器到客户端和客户端到服务器)。有n个本地系统和一台服务器

我的要求是用户将触发同步操作,我的意思是任何按钮点击事件。应用程序无法自动同步。甚至在应用程序加载时也没有

我已经搜索了Microsoft Sync Framework,但是我不可能使用它,因为所有使用该应用程序的本地系统都没有安装Sync Framework

代码应支持以下场景:

  • 如果在服务器的表中插入新记录,则在用户触发同步后,该记录应在本地插入
  • 如果在本地的表中插入了新记录,则在用户触发同步后,该记录应进入服务器
  • 如果记录同时插入到服务器和客户端中,则两者都应同步并同时插入新记录
  • 如果记录被更新,它也应该同步
  • 我曾尝试使用ADO.NET的断开连接的体系结构来使用dataset对象,但获取整个数据会带来性能开销


    我正在使用.NET 4.0、平台x86和WPF应用程序

    如何解决冲突?我认为,您最好使用某种缓存,而不是数据库的克隆。V-X:对于冲突,我们需要向表中添加新行。根据要求,使用缓存不是一个选项。需要有一个本地数据库。当服务器和客户端都更新同一条记录时会发生冲突。CL:如果服务器和客户端更新同一条记录,则会存储客户端记录。一种可能性是(我已经大致考虑了一些我可能会做的事情,但尚未实现)就是有一个类似于审计/事务表的东西,它记录[通过触发器或“小心”]插入/删除/修改记录的事实,记录(哪个表的)记录以及发生这种情况的时间。这可以成为同步过程的驱动因素。