目前.NET的连接方式是离线方式,使用连接池这样你可以最少的占用系统资源,知道有多少人连接,没什么必要嘛,你主要是控制连接完毕后关系连接就可以.如果你想的话你可以建立一个登录表,里面记录用户状态,连接时先取这个表看有多少个人在使用数据库,在程序退出时设置连接状态,不过有个问题就是如果出现非法关机就不能够得到正确的状态,但这种概率是比较低的,所以不考虑也可以

解决方案 »

  1.   

    to 一叶小舟,你的方法很好,不过不太适合我,我就是想用户一登陆,在数据库里就设一个值。这样来做用户登陆表的。但如果断电的话,这种方法就不行,所以程序一开始,我就检测有多少个连接,如果没有连接的话,我就把用户全部设为不在线。我的方法是不是很笨,但我想不到第二种方法,我是的C/S结构的~
      

  2.   

    现在试试sp_who。我还不知道怎样搞呢~~
      

  3.   

    sp_who提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。语法
    sp_who [[@login_name =] 'login']参数
    [@login_name =] 'login'
      

  4.   

    可能sql server或者oracle或者access没有提供这种功能。
    建议楼主可以使用一个线程池,在数据库服务器这边统一管理。所有客户的连接数据库必须经过线程池。这样的话就可以控制它的连接了。
    不过这样做的难度系数不小。有个比较死的方法,在数据库一张表中来记录登陆的情况,只要连接上了,就向该表写记录。退出就做其他的标志。这样也可达到目的。
      

  5.   

    我现在就是这样用一个表来记录登陆情况,我还要作异常处理,所以我要连接个数。
    我还是不知道sp_who是怎样一回事?
    闷~~~~~~~~~`
      

  6.   

    SELECT GETDATE() AS 'Today's Date and Time', 
       @@CONNECTIONS AS 'Login Attempts'
    @@CONNECTIONS
    返回自上次启动 Microsoft® SQL Server™ 以来连接或试图连接的次数。