T60wl 2014-04-14 05:27
浏览 2822

C# winfrom客户端sqllite数据库实时同步sqlserver

问题描述如下:

 系统背景如下:系统为wpf+sqllite数据库搭建的客户端程序,所有的数据都在客户端进行录入。现在使用系统的群体为医生,每一个医院有多个注册账号,每个医院的医生数据最后都要汇总在一起,现在我的架构设计是:sqllite数据库跟sqlserver数据库结构一摸一样。每张表都有一个guid字段作为同步的依据,表中分别有ISAdd,ISUpdate,IsDelete三个字段标识。ISADD=新增,ISUPdate=修改,ISdelete=删除。sqllite 数据库同步到sqlserver非常容易实现。每次筛选客户端ISAdd,ISUpdate,IsDelete值等于1的生成一个新结构的数据库文件。将生成后的新数据库文件通过代码模拟http上传。服务器写一个windows 的服务程序。实时的去数据库扫描是否有新上传的数据库文件。如果有文件,将文件数据全部写入sqllserver数据库。

根据guid分组删除前面已经存在的数据。最后通过注册医院账号将该医院的患者所有数据生成一个sqllite数据库。供刚刚上传的医院账号下载他们医院的所有数据。但是问题来了,sqllite数据库文件非常大有几十兆。各个医院的网络情况不一。有的限制了下载速度。想问问前辈们有什么好的解决方案吗?只要联网就实时同步。比如A医院的A账号录入了一个患者,他上传以后立马通知A医院的B账号,C账号自动更新数据。怎么判断客户端存在的数据不更新勒?只更新自己需要的数据。这里需要注意的是。医院的客户端大部分时间是脱网工作的。数据保存在客户端的sqllite.联网后自动更新,非常急.....

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作