I want to clarify this situation.
According to Microsoft guidelines, it's a good practice to provide Close
method where suitable. Here is a citation from Framework design guidelines
Consider providing method Close()
, in addition to the Dispose()
, if close is standard terminology in the area. When doing so, it is important that you make the Close
implementation identical to Dispose
...
In most of cases Close
and Dispose
methods are equivalent. The main difference between Close
and Dispose
in the case of SqlConnectionObject
is:
An application can call Close
more
than one time. No exception is
generated.
If you called Dispose
method
SqlConnection
object state will be
reset. If you try to call any
method on disposed SqlConnection
object, you will receive exception.
That said:
- If you use connection object one
time, use
Dispose
.
- If connection object must be reused,
use
Close
method.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…