SORU
13 NİSAN 2009, PAZARTESİ


SQLDataReader elden?

Eski kod ile çalışıyorum ve asla kapalı veya ortadan kaldırılmasını SQLDataReader birçok örneği var. Bağlantı kapatıldı ama, eğer okuyucu el ile yönetmek için gerekli olup olmadığından emin değilim.

Bu performansta yavaşlama neden olabilir?

CEVAP
13 NİSAN 2009, PAZARTESİ


Bu gibi: okuyucular kullanarak önlemek için deneyin

SqlConnection connection = new SqlConnection("connection string");
SqlCommand cmd = new SqlCommand("SELECT * FROM SomeTable", connection);
SqlDataReader reader = cmd.ExecuteReader();
connection.Open();
if (reader != null)
{
      while (reader.Read())
      {
              //do something
      }
}
reader.Close(); // <- too easy to forget
reader.Dispose(); // <- too easy to forget
connection.Close(); // <- too easy to forget

Bunun yerine, ifadeleri kullanarak sarın:

using(SqlConnection connection = new SqlConnection("connection string"))
{

    connection.Open();

    using(SqlCommand cmd = new SqlCommand("SELECT * FROM SomeTable", connection))
    {
    	using (SqlDataReader reader = cmd.ExecuteReader())
    	{
    		if (reader != null)
    		{
    			while (reader.Read())
    			{
    			    //do something
    			}
    		}
    	} // reader closed and disposed up here

    } // command disposed here

} //connection closed and disposed here

Kullanarak ifade nesneyi doğru atılması ve kaynakları azat sağlayacaktır.

Daha sonra unutursanız temizlik biraz uzun sürebilir ki çöp toplayıcı, terk ediyorsunuz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • SVB International

    SVB Internat

    29 EKİM 2011