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

  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • Justin Case

    Justin Case

    3 EKİM 2011
  • placeboing

    placeboing

    7 Mart 2006