using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Close();
conn.Dispose();
}
怎么在这段代码执行完成后立刻断开数据库链接,只用useing不行,加上里面的两句代码也不行,select * from master..sysprocesses a
 inner join master..sysdatabases b on a.dbid=b.dbid
where b.name='mycrm_userdb'这句sql语句总是能查询到上面的链接,
求解怎么能立刻把这个链接断开

解决方案 »

  1.   

    没有办法。连接池是ADO.NET底层维护的。using (SqlConnection conn = new SqlConnection(connStr))
    {
        //这两行业是不需要的。
        //conn.Close();
        //conn.Dispose();
    }
      

  2.   

    都用using了 就不用在里面写conn.Close();conn.Dispose();了还有 你这个sql是不是在查询分析器里看的?你查询到当前sql连接有多少个? 因为你查询分析器也需要占用一个sql连接的啊. 你的SQL管理器也要占一个连接的.骑驴找驴了吧?
      

  3.   

    呃,我查过了
    select * from master..sysprocesses a
     inner join master..sysdatabases b on a.dbid=b.dbid
    where b.name='mycrm_userdb'
    这段sql语句使用的是master,并没有占用mycrm_Userdb,
    查出来占用的链接数还是我前面创建的两个链接,这个sql语句并没有占用
      

  4.   

    conn.ConnectionTimeout = 0;
    试试
      

  5.   

    不过问题解决了,SqlConnection.ClearAllPools();可以清空连接池
    SqlConnection.ClearPool(SqlConnection conn),可以清空与指定连接关联的连接池