和和,UP,不过你可以参考一下DVBBS,它的实现原理和你的一样,不过它也有过你一样的问题。

解决方案 »

  1.   

    每一次刷新时候
    对表中的每一条记录的时间进行判断
    如果大于刷新时间就说明这个用户已经离线了。把online的标志位变成0
    反之则在线,把tim变成当前的时间,,,
      

  2.   

    “每一次刷新时候
    对表中的每一条记录的时间进行判断
    如果大于刷新时间就说明这个用户已经离线了。把online的标志位变成0”
    哪种状况才会使“大于刷新时间”发生,还有就是程序里面哪个语句使“大于刷新时间”,
      

  3.   

    哦,好像看明了,是不是不同的人用不同的ID来登陆,譬如用户只有a、b和c,a登陆之后,每隔t就把自己的时间更新一下,而且检查b、c的更新时间(a每个用户只能改变自己的时间,而b、c如果不在线的话,就不能更新自己的时间,所以a用户那个网页会输出b、c不在线了)
    是不是这个原理啊?
      

  4.   

    在同一台机器上似乎SESSION会乱的,我自己的论坛上也碰到过这样的问题。
      

  5.   

    如果你实在解决不了,你可以参考以下其他asp.net的论坛,可能会对你有帮助,祝你成功!
      

  6.   

    在线人数的统计你可以在Global.asax里的Session_Start和Session_End事件设置一下
      

  7.   

    我感觉你的程序写的挺乱的,你可以去ASP.NET论坛看看呀。
      

  8.   

    我感觉,你的代码试任何一个人近来都会刷新所有人的登陆状态信息(即替别人刷新各自的登陆信息)
    所以:
    在最初的数据载入时应该有针对性
    objConn.Open() 
    Dim objCmd As New SqlDataAdapter("Select * From  Online where UserID='****'" ,objConn)
            objCmd.fill(rst,"Online")
    objConn.Close()
    这样的数据才更准确,另外对但记录的数据最好用DataReader 
    比 DataAdapter 效率要高(快些)