假设局域网有2台客户端 同时打开定单应用程序 如果1台客户端修改了定单 另1台要求能同时看到修改的结果 请教前辈代码  是用timer 控件 不停的刷么 请给点详细代码 谢谢刚开始做客户端程序 有好多问题还要请教 祝 人气旺旺

解决方案 »

  1.   

    看你用的什么数据库了, 如果是SQL Server,可以在数据库上做Triger
      

  2.   

    呵呵,写个Timer不停的刷会把机子整死的。
    写个监听线程,遇到有客户端更新显示信息,
    便向所连接的所有客户端发送更新信息。
    客户端接受信息后,进行显示刷新。就这么简单。
    别忘给分哈,呵呵
      

  3.   

    呵呵 老哥 是sql 对数据库的触发器 怎么写具体点
      

  4.   

    不知道你服务端与客户端怎么写的,没法给你具体的代码阿。自动刷新的话,就不用线程监听了。算法就是,在你的接收客户端订单的方法里,加上发送方法,该方法加在新的客户订单写入数据库之后。这样,服务器一接收到订单改变信息,立即向所有连接到服务器的客户机发送指令(指令你自己编个就好,比如001)。客户端接收到指令后调用flush(),重新读服务器数据,刷新客户端。
      

  5.   

    当出现修改定单操作事件 S端获取 C端IP ip1 ,并向在线的 非ip1 IP地址C端 发送信息
      

  6.   

    引用错误,是回上面用SQL Triger  的兄弟的!
    同意上面有兄弟讲的,1台更新后,通知其它客户机!
    当然这种情况下势必要是服务端来执行,因为客户端不知道况的客户端会有多少年啊!
      

  7.   

    这有点类似即时通讯软件qq、msn的上线通知!
    当然如果你是b/s结构,那就得用ajax了!
      

  8.   

    呵呵,我是最先倡议你用服务端发送指令,客户端接收并自动刷新机制的那家伙。
    后来想了想,还是别这么整了。这么整的话,你做的系统会变得很脆弱。只要有
    一个人打开客户端,用鼠标自动点击软件不断的提交,你其他的客户端就永远也
    打不开(一直在刷新状态)。也就是说,这种机制,会使你的系统很容易的受到
    拒绝服务攻击。这样的系统,恐怕就没人敢用了吧,呵呵。除非你限制上传频率,
    但那会让一些用户用起来很不顺手。其实,还是建议你去看一下AJAX吧,无刷新
    更新数据,AJAX是绝对的王道。
      

  9.   

    如果A改了订单,B在A修改前就已经打开订单,然后盯着屏幕等着看A修改后的结果,那么,你还只能让B机定时监听数据库变化当然,还有就是如果A机修改完了,触发一个事件让 B机知道也可以其实,我们还不知道你用的是C/S还是B/S,上面我说的C/S的做法,B/S反正就是AJAX定时刷新,一旦数据库发生变化,就显示变化结果,相当于聊天室的原理嘛
      

  10.   

    ajax也就是异步回发 和定期刷新数据库一样的  c/s 写timer线程 应该一样吧?求教Client/Server 的 我打算写线程 每1分钟刷1次 这样可行么?
    当然,还有就是如果A机修改完了,触发一个事件让 B机知道也可以有具体点的 代码么? 呵呵 谢谢 
      

  11.   

    如果是我,我会这样做:
    无论是A和B都有一个timer,这个timer10秒问一个服务端,有没有订单更改的
    或者是:如果用户正在看ID=1111的订单,那就把1111作为参数传过去,问;1111有没有变.服务端返回true/falseasp.net ajax框架下面,很容易就可以实现到这一点.
      

  12.   

    顺便说一句,不要和我说性能的问题,用AJAX的异步回调,在这个方案里面,是可以忽略的.
      

  13.   

    呵呵,用线程的话何须Timer?首先,写一个Cheak()方法检查数据
    库是否有更新,当然,在这个方法里将所有的实际方法都写在一个
    while(true)
    {
    }
    里,当然,赋值除外。然后,在这个死循环里加上sleep(1000),再
    写个线程调用这个方法不就完事了?