使用“唱歌”时,最后关闭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
因此,您应该处理错误,但是您会忘记关闭连接。 |
|
|
|
|
|