closeSqlConnectionlastwhenusing"use"我想关闭最后一个SqlConnection,因为use并没有真正关闭它,连接池变满了。但是我不知道什么是正确的方法,因为conn对象在finally部分不再可用。try{using(varconn=newSqlConnection(_dbconnstr)){//...}}catch(Exceptionex){//...}最后{conn.Close//?!?!?!?!???}using(varconn=newSqlConnection(_dbconnstr)){//code}显示为:SqlConnectionconn=newSqlConnection(_dbconnstr);尝试{//code}最后{conn.Dispose();所以你应该处理错误,但你可以忘记关闭连接。您不需要在finally块中关闭conn。using块将为您处理关闭连接。(事实上??,在这种情况下,您可能根本不需要try...finally除非您有其他资源需要在finally中处理。)using块将转换为以下内容:varconn=newSqlConnection(/*...*/);try{//...}finally{if(conn!=null)((IDisposable)conn).Dispose();}finally块中会调用SqlConnection对象的Dispose方法,Dispose方法继续为你调用Close。退出对象上的using块调用.Dispose(),因为SqlConnection将关闭连接和任何打开的资源。所以试试看,finally块是不需要的。据我了解,连接对象的Dispose()方法将关闭连接。您不需要显式调用Connection.Close。使用Using关闭连接的方式很好。也许您可能忘记关闭某些DataReader?AFAIK,下面的用法语句:using(varconn=newSqlConnection(_dbconnstr)){}等同于:以上是C#学习教程:使用“use”时,最后关闭所有SqlConnection共享的内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——SqlConnectionconn;try{//`using`作用域操作在这里执行conn=newSqlConnection(_dbconnstr));}catch{//异常被冒泡抛出;}finally{//Dispose总是调用conn.Dispose();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
