我用.net连接的数据库,明明关闭了连接,可是为什么还显示仍然有两个连接呢?

解决方案 »

  1.   

    一般使用企业管理器来分离数据库.或是直接停用SQL SERVER,然后拷贝MDF,LDF文件即可.
      

  2.   

    我的意思是,这两个连接是什么东东?因为我用conn.close()已经关闭了啊~
    贴上代码:                String userId = "";                ///定义类并获取用户的登陆信息    
                    SqlServerDB sql = new SqlServerDB();
                    SqlConnection conn = sql.OpenConnection();
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = " SELECT  工号 FROM  PUB_User where 系统识别 = 3 and 工号='" + UserName.Text + "' and 口令='" + Password.Text  + "'";
                    cmd.Connection = conn;                conn.Open();
                    SqlDataReader recu =cmd.ExecuteReader (); 
                    
                    ///判断用户是否合法
                    if (recu.Read())
                    {
                        userId = recu["工号"].ToString().Trim();
                    }
                    recu.Dispose();
                    recu.Close();
                    conn.Close();
      

  3.   

    企业管理器:
    管理->当前活动->进程信息
    中看一下就知道是谁在连接了。
      

  4.   

    用iis访问数据库的?应该是iis自己的进程在访问先sp_who,再kill
      

  5.   

    回复7.8楼,请问:SP_WHO是什么啊?怎么用>
      

  6.   


    直接在查询分析器sp_who执行查询数据库的连接情况
    kill spid 杀掉进程即关闭连接.
      

  7.   

    不好意思啊~我现在还是不知道那两个连接是什么东西?
    貌似我登陆后出现一个,然后我用dataview访问绑定数据后又出现一个~
    我以后再访问数据库的时候速度明显变慢
      

  8.   

    直接把sqlserver服务管理器停止不就得了
      

  9.   

    sp_who2 active看看谁还连在上面
      

  10.   

    一般,我们看连接和会话,去这里看
    select * from sys.sysprocesses (sql server2005)
    看看有哪些人连接到上面,如果要kill
    使用kill spid
    如果要看这个spid在做什么动作
    则可以这样
    dbcc inputbuffer (spid)关于分离数据库,最好用sp_detach_db,分离前要保证是单一用户,没有发布关系,没有database mirror(sql server2005)