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 theDispose()
, if close is standard terminology in the area. When doing so, it is important that you make theClose
implementation identical toDispose
…
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 disposedSqlConnection
object, you will receive exception.
That said:
- If you use connection object one
time, useDispose
. Ausing
block will ensure this is called even in the event of an exception. - If connection object must be reused,
useClose
method.