"Ado.Net" kullanarak veritabanınıza bağlandığınız uygulamalarda, projenizde "connection string" 'lerinize daha kolay ve daha modüler bir şekilde ulaşmanız isteyebilirsiniz. Bunun için projenize bir adet "App.config" dosyası atarak, "connection string" parametrenizi burada "connection string" tegleri arasında "add" tegleri içerisinde tanımlamalısınız. Ayrıca aşağıda görüldüğü üzere birden fazla "connection string" de tanımlayabiliriz. "name" ve "connectionString" attribute değerlerinin kullanılması şarttır. Ayrıca birbirinden farklı veritabanlarına bağlantı kuracaksam farklı "provider" sağalayıcıları için "providerName" attribute değeri de verilebilir. Örneğin Sql Server 'a bağlanmak istediğimi belirtmek için "providerName = System.Data.SqlClient" verilmelidir.
<connectionStrings>
<clear/>
<add name="NorthwindBaglanti" connectionString="Server=. ;
Database=Northwind ; trusted_connection=true"/>
<add name="NorthwindBaglantiMARS" connectionString="Server=. ;
Database=Northwind ; trusted_connection=true ; MultipleActiveResultSets=true"/>
<add name="NorthwindBaglantiPooling" connectionString="Server=. ;
Database=Northwind ; trusted_connection=true ; Pooling=true ; Min Pool Size=10 ;
Max Pool Size=100"/>
</connectionStrings>
SqlConnection conneection = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindBaglantiMARS"].ConnectionString);
Fakat indexle çağırırken "0" değeri için :
SqlConnection conneection = new SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
aşağıda görüldüğü gibi bazen "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config" yada "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config" dizini altında "machine.config" dosyasındaki "connection string" i görebilir. Bu string "sqlexpress" instanse ıdır. Eğer sunucuda böyle bir instance yoksa hata verecektir.
SqlConnection conneection = new SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
aşağıda görüldüğü gibi bazen "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config" yada "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config" dizini altında "machine.config" dosyasındaki "connection string" i görebilir. Bu string "sqlexpress" instanse ıdır. Eğer sunucuda böyle bir instance yoksa hata verecektir.
<connectionStrings>
<add name="LocalSqlServer" connectionString="data
source=.\SQLEXPRESS;Integrated
Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
Bu nedenle öncelikle "connection string" 'leri "<clear/>" ile temizliyorum. Daha sonra "App.config" dosyanızdan "Form" class ınıza veri çekebilmek için "Solution Explorer" penceresinde "References" sekmesine sağtık "Add References" seçeneğini tıklamalıyız.
Bu pencerede ise ".Net" sekmesi altında "System.Configuration" namespace 'ini seçerek tamam demeliyiz.
Görüldüğü üzere "References" sekmesi altında "System.Configuration" namespace 'ini ekledik.
Daha sonra "using" 'lere de "System.Configuration" ekliyoruz. Yukarıda tanımladığımız gibi uygulamanızda "App.config" dosyasındaki istediğimiz "connection string" cümleciğini, "SqlConnection" nesnenizin "connection string" parametresinde, ister ismiyle istersek de index numarasıyla çağırabiliriz.
NOT: Class Library projelerine app.config konulsa da konulmasa da, o class library dll 'i hangi exe 'e uygulamasında çalışacaksa o uygulamdaki app.config 'i görür. Eğer uygulamada app.config dosyası yoksa machinne.config 'deki connection string 'i okuyacaktır.
Başka bir yazıda görüşmek dileğiyle, hoşçakalın...
Hiç yorum yok:
Yorum Gönder