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

  • JonnyEthco

    JonnyEthco

    5 EKİM 2006
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • TSE

    TSE

    12 Kasım 2012