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

  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • Machinima

    Machinima

    17 Ocak 2006
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007