回答

收藏

使用“唱歌”时,最后关闭SqlConnection。

技术问答 技术问答 103 人阅读 | 0 人回复 | 2023-09-13

我想在最后关闭SqlConnection,因为使用并没有真正关闭它,并且连接池已满。但我不知道该怎么做才是正确的方法,因为在最后一节中再也无法访问conn对象了。
# o9 f+ n( P0 K( j! V# ?2 F9 M5 Htry
# b7 v$ J$ v3 X& k2 j- E" y{! [. z7 R6 S% L* c
    using (var conn = new SqlConnection(_dbconnstr))
# r) u) }; Q3 H9 U    {: ]7 V  T2 K" w  F
        //...4 e8 E) Y4 A* h. g3 ?/ o2 p  A3 k" C
    }
; A) |: u  m+ d4 H0 P}
9 M* C4 T& |1 scatch (Exception ex)+ W! i: M. F6 c0 `3 s) c
{
9 U9 o+ b& Q+ ], d" a" N/ O( O    //...
4 J% b* A  C& |: y: m- X}2 a/ R/ W3 |2 i9 O
finally
) I% y& G: e& b{( |/ J9 {& b, I; Y
    conn.Close //?!?!?!?!???4 w  \- X' g& K7 Y& j
}) ]7 q: x0 C. H' d- F
               
0 O2 j$ i3 K" d解决方案:
; J" D- o6 o' l: X9 x+ o9 x               
7 V2 h  Y2 K  i8 y: {( Q5 c
2 j. ~* o, e  a3 f; g2 x  j0 q7 a; o, ]; |% H7 K0 z2 T
                using (var conn = new SqlConnection(_dbconnstr))
& b. p, i4 y9 v0 @/ r{$ j) r2 s1 `7 o& t
    //code- S+ Y9 y7 s3 I; I4 t+ k( T
}
/ ~5 ~2 m8 L4 o# F扩展为:
1 g) B6 m6 M" a# ESqlConnection conn = new SqlConnection(_dbconnstr);
2 K  C1 W: x2 q2 Z: e5 P' ltry
7 j- b% p% I" _( r- ^- T{" P' L8 F, A& E2 f
    //code' V) K5 m; q& `' F
}, w2 G  ?" [8 _- \, k# G
finally8 F  }2 [% n0 `6 W7 D  U* e
{
, z: t1 }" P3 s$ w) {# F8 ?    conn.Dispose();3 S# e! ]+ r6 s# ^
}0 b& `+ u/ s; s: h! M: w
因此,您应该处理错误,但是您会忘记关闭连接。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则