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

  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006