| Ana Sayfa | Dersler | Download | Forum |Bize Ulaşın  |Siteni Ekle | Ziyaretçi Defteri |


  Getirdiği Avantajlar
  Bağlantısız Katmanda Çalışmak
  Bağlantılı Katmanda Çalışmak
  Strored Procedure'ler İle Çalışmak
  ASP.NET ile DataGrid Kullanımı (C#)
  ASP.Net İle Oracle Üzerinde Çalışmak
  İç İçe Repeater Kullanımı
  TextBox ve DropDownList Data Binding   

Uygulama:Strored Procedure'ler İle Çalışmak

Bu yazımız başlığından da anlayacağınız üzere bir "uygulama" konusunu içeriyor. Nedir konumuz:"Stored Procedure'lar İle Çalışmak". O halde derhal uygulamaya geçmekte fayda var. İlk etapta sql server da yeni bir tablo yaratacağız. Tablomuzun içeriği otomobiller üzerine olacak. Ve bazı otomobil marka ve modellerinin fiyat,yaş,renk,marka ve model bilgilerini içerecek. Daha sonra bir web formda listbox yardımıyla araçların modellerini listeleyecek ve üzerine tıklanan araca ait detay bilgilerin datagrid üzerinde gösterilmesini sağlayacağız. Tabi bu işlemi bir stored procedure yardımıyla yapacağız.

Tablo dizaynımızı yapıyoruz.



Tablomuza ait örnek verileri oluşturuyoruz.



Şimdi sıra kullanacağımızı stored procedure'ü yazmaya geldi.



Buraya kadar olan kısım işin veritabanı ile ilgili olan kısmıydı. Henüz stored procedure haricinde herhangi bir kod yazmadık. Şimdi VS 2003 te yeni bir C# Web Application oluşturup tüm bu yaptıklarımızı kullanma zamanı geldi.

Formumuza bir listbox ve bir datagrid nesnesi ekliyoruz. Ve tasarımı aşağıdakine benzer bir hal alıyor.



Databse ve form tasarımımızı bitirdiğimize göre sırada işin heyecanlı tarafı yani kod yazma bölümü var. İlk etapta sayfa yüklenirken neler olmasını istediğimizi yazmakla başlayalım. Neler olabilir mesela; sql server da yarattığımız tablomuza bağlanıp sadece ID ve model alanlarını alacak bir kod bloğu yazmak ile başlayalım.

SqlConnection baglanti=new SqlConnection("initial catalog=otomobil;Data Source=localhost;User ID=sa;Password=123");
private void Page_Load(object sender, System.EventArgs e)
{

if (Page.IsPostBack==false)

{

SqlCommand MyCommand=new SqlCommand("Select id,marka From TBLOTOMOBIL Order By Marka",baglanti);

MyCommand.CommandType=CommandType.Text;

SqlDataReader MyReader;

baglanti.Open();

MyReader=MyCommand.ExecuteReader(CommandBehavior.CloseConnection);

ListBox1.DataSource=MyReader;

ListBox1.DataTextField="marka";

ListBox1.DataValueField="id";

ListBox1.DataBind();

MyReader.Close();

}

}


Bu kod bloğu ile yaptıklarımıza kısaca bir göz atalım:

SqlConnection baglanti=new SqlConnection("initial catalog=otomobil;Data Source=localhost;User ID=sa;Password=123");

/*SQL Server Bağlantı Stringimiz*/

SqlCommand MyCommand=new SqlCommand("Select id,marka From TBLOTOMOBIL Order By Marka",baglanti);

/*Sql Command nesnemizi oluşturduk ve Sql cümlemiz hazır*/

MyCommand.CommandType=CommandType.Text;

/*Sql Command nesnemizin hangi tipte kaynaktan veri alacağını belirtiyoruz.*/

SqlDataReader MyReader;
baglanti.Open();

/*SqlDataReader nesnemizi oluşturuyor ve bağlantıyı açıyoruz*/

ListBox1.DataSource=MyReader;

/*ListBox ımızın DataSource ünü SqlDataReader olarak belirliyoruz*/

ListBox1.DataTextField="marka";
ListBox1.DataValueField="id";

/*ListBox umuzun index verilerini tanımlıyoruz*/

ListBox1.DataBind();
MyReader.Close();

/*Verilerimizi Listbox umuza aktarıyor ve Reader ımızı kapatıyoruz*/

Şimdi sıra geldi ListBox dan bir item seçildiğinde DataGrid üzerinde bu item ın detaylarını göstermeye. Aslında konumuz asıl olarak burada başlıyor. Yani Stored Procedure den veri okuma kısmımız.


private void ListBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
SqlCommand otomobildetay=new SqlCommand("otomobil",baglanti);

otomobildetay.CommandType=CommandType.StoredProcedure;

otomobildetay.Parameters.Add("@otoid",SqlDbType.Int);

otomobildetay.Parameters[0].Value=ListBox1.SelectedValue;

SqlDataReader MyReader;

baglanti.Open();

MyReader=otomobildetay.ExecuteReader(CommandBehavior.CloseConnection);

MyDataGrid.DataSource=MyReader;

MyDataGrid.DataBind();

MyReader.Close();

}

Şimdide burada yazdığımız kodları kısaca gözden geçirelim.

SqlCommand otomobildetay=new SqlCommand("otomobil",baglanti);

/*Sql Command nesnemizi tanımladık ve parametrelerine database bağlantımızı ve yazımızın başında oluşturduğumuz stored procedure nin ismini yazdık.*/

otomobildetay.CommandType=CommandType.StoredProcedure;

/*Command nesnemizin type ını Stored Procedure olarak verdik*/

otomobildetay.Parameters.Add("@otoid",SqlDbType.Int);

/*Hazırladığımız stored procedure de kullanacağımız parametreyi ve veri tipini belirttik*/

otomobildetay.Parameters[0].Value=ListBox1.SelectedValue;

/*Bir önceki satırda belirttiğimiz parametrenin ListBox1 in selected item ından geleceğini belirttik*/

SqlDataReader MyReader;
baglanti.Open();

/*SqlDataReader nesnemizi tanımladık ve bağlantımızı açtık*/

MyDataGrid.DataSource=MyReader;

/*DataGrid imizin datasource ünü MyReader olarak tanımladık*/

MyDataGrid.DataBind();
MyReader.Close();

/*DataGrid imze verileri bağladık ve SqlDataReader ımızı kapattık*/

| Ana Sayfa | Dersler | Download | Forum |Bize Ulaşın  |Siteni Ekle | Ziyaretçi Defteri |

Türk MCSD.NET © 2005
 Siteyi en kaliteli Internet Explorer 5 ve üzeri versiyonlarinda 800 x 600 pixel çözünürlükte izlemenizi tavsiye ederiz.