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 theCloseimplementation 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
Closemore
than one time. No exception is
generated.If you called
Disposemethod
SqlConnectionobject 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. Ausingblock will ensure this is called even in the event of an exception. - If connection object must be reused,
useClosemethod.