用C#中什么技术实现数据同步问题呢?
实时同步:服务器端有新的数据、客户端自动下载;客户端有新的数据、上传到服务器端、服务器自动接受。急、.........

解决方案 »

  1.   

    服务端用的是sql server 2000、 客户端用的是access、
       有哪位高手有过相关经验呀?请多指教、
      

  2.   

    我们公司做的一个项目也有过这样的需求,按照角色的不同,上一级用的是sql server 2005 ,程序要做的就是将数据导入到access中去供下属部门操作,如果有些操作需要上级去审批的话,就将信息保存到excel等格式的文件中,然后上级再导入进行操作。不知道和你的是否类似。
      

  3.   

    怎么说呢?……
    程序在权限那个窗口有个将sql数据库导入到access的功能。将表和数据保存到.mdb的文件。当然数据库有些关系和字段类型会丢失,这是需要主意的。然后不同用户登录后连接不同的数据库进行操作。
    我也不知道该怎么说 (*^__^*) 嘻嘻……
      

  4.   

    如果sqlserver的数据和access的数据需要交互的话一般都是通过一些文件导入导出实现的
      

  5.   

    打个比方吧!
    用户1代表上级部门;用户2代表它的下级部门。
    1操作的是sql server;2操作的是access。
    如果有这样的需求:2要求申请操作一张表里的数据,然后2就添加一条记录到表UpdateTable记录它修改的记录,可能表UpdateTable有字段修改时间,修改的表的id,修改人,修改方式(添加、删除、修改)等等。然后怎么样提交这么信息到1让他去审批呢?系统就要提供一个功能将表UpdateTable的数据导出到一个文件(例如名叫update.excel)然后就把这个update.excel给1,1就再将它导入到sql server表中ApreTable(表ApreTable和UpdateTable结构都一样)再进行操作。是通过还是删除呢?
      

  6.   

    服务端有表DBMonitor
    表名 maxid lasttime当任何表有新数据,则触发器往dbmonitor表插数据,有表名,刚刚插入数据的ID,插入时间
    客户端实时监视dbmonitor变化,当客户端access表里的lasttime与服务端lasttime时间不等,就说明有数据变化,然后到dbmonitor取相应的表,ID,然后操作
      

  7.   

    sorry,想的简单了,服务段的lasttime与客户端的lasttime一定不等,大致思路是这样,LZ可以再自己考虑考虑
    比如把lasttime换成一个可以比较的内容
      

  8.   

    再sorry,呵呵,我认为lasttime还是可行的
    如服务端在触发器动作时可能有多条数据更新,插如时间为 
    2010-6-8 12:54 00
    2010-6-8 12:53 02
    2010-6-8 12:51 00客户端lasttime时间为2010-6-8 12:50 00 说明服务端有新数据,这时根据我上面说的操作
    把所有lasttime大于本地lasttime的数据都读出来,然后逐条操作,并将其中最大的lasttime更新到本地的lasttime
    这样,即便你刚刚读完3条被更新的数据,还没进行其他操作时,就算服务端又有了新数据,但是由于你已经读完3条,第4条更新的数据则在客户端下次监视时继续操作.
      

  9.   

    服务器数据更新时,发消息给客户端
    客户端也是一样,发送给服务端。关键是如何监听数据,得到数据已经被更新的通知。服务端可以用数据库的触发器。定时检查等。客户看数据的容器是什么,如果是dataset,就可以监听相应的事件进行处理。