CloseConnection ne işe yarar neden kullanılır?

Command nesnesinin executeReader metotu ile kullanılan enum olarakta bilinir. Varsayılan değeri Default fakat ihtiyaç gereği 6 adet daha kullanılan değeri mevcuttur ki CloseConnection bunlardan biridir. Command nesnesine bağlı olan Connection nesnesi reader nesnesi kapatılana kadar açık kalır. Neden kalsın ki?

Örnek bir kullanım ile açıklayalım;

Close Connection

Close Connection

Kazancımıza bakalım;
 - Reader ile okumanın Adapter ile okumaktan daha hızlı olduğunu herkes bilir. + 1
      (Connection nesnesi kapansaydı Reader nesnesi N' olarak gelecekti. Açık bırakırsak ayrı bir dert)
 - SqlCommand nesnesini Program nesnesine çekersekte uygulama System.Data.SqlClient' a bağımlı kalacaktı bu da iyi bir tasarım olmayacaktı. + 2

Yorumlar
Ekleyen
en bi güzeli...

dataHelper dap = new dataHelper();
using(IDataReader dr = dap.getDataByReader("select * from Categories"))
{
while (dr.Read())
Console.WriteLine("{0} - {1}", dr[0], dr[1]);
//Command nesnesine bağlı connection nesnesi kapanıyor.
}
Ekleyen
Kesinlikle katılıyorum lakin ben bu örneği bir arkadaşın CloseConnection yapısını kavraması için yaptım ve close metotunu çağırıp dikkati o yöne çekmeliydim :)