Merhaba arkadaslar,
Bu dersimizde database baglanti yöntemlerinden birisi olan web.config dosyasina baglanti cümleleri ekleyerek web sayfamizi çalistirdigimizda bu connection stringleri ekranimizda listeleyecegiz.Seçilen baglanti cümlesine göre istenilen database’e baglanabilecegiz.
Öncelikle web.config dosyamiza asagidaki kodlari eklememiz gerekiyor.Sizin de dikkat ettiginiz gibi burada üç adet baglanti cümlesi tanimladik.Burada her bir tanim için name, connectionString ve providerName özelliklerini belirtmemiz gerekiyor.Programimiz içinden baglantilarimiza ulasabilmemiz için “name” özelligi kullaniliyor.Burada üç adet baglanti oldugu için bizler bir dizi-enumerate yardimiyla bu baglantilara erisecegiz.
<connectionStrings>
<!—Baglanti1-->
<add name="dbEmployeeConnectionString" connectionString="Data Source=MYCOMP\SQLEXPRESS;Initial Catalog=dbEmployee;User ID=usr1;Password=123"
providerName="System.Data.SqlClient" />
<!—Baglanti2-->
<add name="dbAccountConnectionString" connectionString="Data Source=MYCOMP\SQLEXPRESS;Initial Catalog=dbAccount;User ID=usr1;Password=123"
providerName="System.Data.SqlClient" />
<!—Baglanti3-->
<add name="dbFinanceConnectionString" connectionString="Data Source=MYCOMP\SQLEXPRESS;Initial Catalog=dbFinance;User ID=usr1;Password=123"
providerName="System.Data.SqlClient" />
</connectionStrings>
Simdi sira geldi kodlarimizi olusturmaya.Ben örnek olmasi açisindan kodlarimi sayfanin Page_Load kismina yazdim ama sizler ihtiyaca göre istediginiz componentin istenilen eventlerinde bu kodlari kullanabilirsiniz.Sayfamizi çalistirdigimizda ekran görüntüsü asagidaki gibi olacaktir.Seçilen database’e baglanabilmek için önceden Sql Server ‘da bu database’leri olusturmamiz gerekiyor.
|
LocalSqlServer
|
System.Data.SqlClient
|
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
|
Baglan
|
|
dbEmployeeConnectionString
|
System.Data.SqlClient
|
Data Source=MYCOMP\SQLEXPRESS;Initial Catalog=dbEmployee;User ID=usr1;Password=123
|
Baglan
|
|
dbAccountConnectionString
|
System.Data.SqlClient
|
Data Source=MYCOMP\SQLEXPRESS;Initial Catalog=dbAccount;User ID=usr1;Password=123
|
Baglan
|
|
dbFinanceConnectionString
|
System.Data.SqlClient
|
Data Source=MYCOMP\SQLEXPRESS;Initial Catalog=dbFinance;User ID=usr1;Password=123
|
Baglan
|
Gelelim kodlarimizin açiklamalarina.
protected void Page_Load(object sender, EventArgs e)
{
//Sayfamiza manuel olarak table nesnesi eklemek yerine ben kod içinde tablo
//olusturmayi tercih ettim
Response.Write("<table border='1' cellpadding='0' cellspacing='0' >");
//Döngü yardimiyla web.config sayfasinda tanimladigimiz baglantilara ulasiyoruz
foreach (ConnectionStringSettings cs in ConfigurationManager.ConnectionStrings)
{
//Yukarida olusturdugumuz table nesnesinin sütun ve satirlarini da kod
//içinde olusturuyoruz.Ayrica sütunlarda neleri göstermek istiyorsak onu da
//burada belirliyoruz.Ben tablouzun sütunlarinda baglantimiza ait
//name,providerName ve connectionString ifadelerinin gösterilmesini
//istedim.Ekran çiktisinda da görüldügü gibi tablomuzun son sütununda
//“Baglan” linki yer almaktadir.Bu linki de burada olusturuyoruz ve
//“baglanti” parametresi yardimiyla seçili baglantinin adini sayfamiza
//tekrar gönderiyoruz.Bu islemi yaparken tipik bir html tagi olan
//<a href=.. den faydalandik.
Response.Write("<tr>");
Response.Write("<td>"+cs.Name + "</td><td> " + cs.ProviderName + "</td><td> " + cs.ConnectionString + "</td><td><a href=Default.aspx?baglanti="+cs.Name.ToString()+">Baglan</a> </td>");
Response.Write("</tr>");
}
Response.Write("</table>");
string connStr;
//Sayfamiz ilk defa yüklendiginde disaridan herhangi bir parametre
//gelmeyecegi için herhangi bir hataya sebep vermemek için parametre gelip
//gelmedigini burada kontrol ediyoruz.
if (Request.QueryString.Count!=0)
{
//Burada gelen parametrenin içindeki degeri okuyoruz.
connStr = Request.QueryString["baglanti"].ToString();
//Baglantimizi da gelen parametrede yer alan baglanti ismine göre gerçeklestiriyoruz.
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
conn.Open();
//Son olarak da ekrana baglanti açildiktan ve kapandiktan sonra //baglantimizin durumunu yazdiriyoruz.
Response.Write("Baglanti Durumu = " + conn.State + "<br>");
conn.Close();
Response.Write("Baglanti Kapatiliyor.....<br>");
Response.Write("Baglanti Durumu = " + conn.State);
}
}
Iyi çalismalar...
Halit Patan