Merhaba arkadaşlar, bu yazımda size performansı artırmak için database bağlantılarını nasıl oluşturmanız gerektiği konusunda örneklerle yol göstereceğim.

Database bağlantı stringini saklamak için web.config dosyasını kullanınız.

<configuration>


   <appSettings>


      <add key="constr" value="server=server; uid=user; pwd=password; database=db" />


  </appSettings>


</configuration>

 

bunu kullanmak için şu yöntemi kullanabilirsiniz

string constr = System.Configuration.ConfigurationSettings.AppSettings["constr"]; 

SqlConnection conn = new SqlConnection(constr);

 

Açılan bağlantıyı ,işiniz bittikten sonra mutlaka tekrar kapatınız.

SqlConnection conn = new SqlConnection(constr);


conn.Open();//açtık


SqlCommand cmd = new SqlCommand(query, conn);


cmd.Parameters.Add(...);


SqlDataReader reader = cmd.ExecuteReader();


conn.Close();//kapattık

 

Bağlantıyı açma ve kapama süreleri arasında geçen zamanı mümkün olduğunca kısaltalım.

örneğin yukarıdaki örnekte açma ve kapama süresi arasındaki süre biraz müsrifçe kullanılmıştır.

bunu şu şekilde değiştirerek daha performaslı sonuçlar elde edebiliriz.

SqlConnection conn = new SqlConnection(constr);


SqlCommand cmd = new SqlCommand(query, conn);


cmd.Parameters.Add(...);

conn.Open();


SqlDataReader reader = cmd.ExecuteReader();


conn.Close();

Gördüğünüz gibi tüm parametre tanımlarımı vs. leri girdikten sonra sadce ExecuteReader yapmadan önce açıyorum ve işim bitince kapatıyorum.

 

 

Bunun diğer bir yoluda CommandBehaviour ile yapılabilir.

IDataReader = cmd.ExecuteReader(CommandBehaviour.CloseConnection);

bu yöntemde bağlantıyı sizin kapatmanıza gerek yoktur. İşlemi bitirdikten sonra kendi otomatik olarak kapatacaktır.

 

yada using kullanarakta bağlantıyı otomatik olarak kapattırabilirsiniz.

using (SqlConnection conn = new SqlConnection(constr))
{
//...
conn.Open();
}

Tabiki bunlar tekniktir arkadaşlar. Projenize hangisi uygun olursa onu kullanabilirsiniz.

Sorularınız varsa alabilirim.

Mustafa KOÇER

mkocer@dotnetkosesi.com

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5