Uzun bir zaman önce C#’a ağırlık verdim ve yazılarım olacak dedim ancak iş ve ev değişikliği vb. sebeplerle öğrendiklerimi paylaşamadım.

Yazdıklarım kesinlikle makale niteliğinde değil. Sadece başlangıç seviyesi için makalelerde üzerinde durulmadığına inandığım noktaları vurgulayacağım. Ben bu noktalarda biraz sorun yaşadım çünkü :) .

.Net 2 ile gelen yenilikler ile makalelerdeki code behind(arka plan) tarafındaki kodlara artık pek yer verilmiyor. Ancak bir çok projede bu tarafta kod yazmamız gerekiyor.

Öncelikle yeni gelen sistemi kısaca gözden geçirelim :

Mssql’e bağlantı için yapmamız gereken tekşey Data>SqlDataSource‘ u seçmek ve bir kaç adım sonrasında bağlantımız sağlanmış olacaktır. Sonrasında sayfamıza birde Data>GridView eklememiz gerekmektedir. Adımların açıklamalı resimleri aşağıda; sqlconn_1.png

Bir sonraki resimde projemize bir SqlDataSource’u nasıl ekleyeceğimizi görebilirsiniz sqlconn_2.png

Projemize bir veritabanını tanıttıktan sonra ki adımları aşağıdaki resimde görebilirsiniz sqlconn_4.png

Yukarıdaki adımları tamamladıktan sonra veritanımızı ve Datasetimizi hazırlamış oluyoruz. Şimdi ise yapmamız gereken tekşey GridView’in datasource’nun SqlDataSource olduğunu göstermek. Bu işlem şimdiye kadar yaptığımız tüm işlemlerden daha basit (öncekilerde basitti ancak bu en basiti :) )

sqlconn_5.png Bu işlemide tamamladığımız anda artık sayfamız hazır.Görüntüsüde aşağıdaki gibi


sqlconn_6.png

Peki bu yolu seçmek bize ne kazandırır?

  • Öncelikle zaman kazandırır
  • Çok rahat bir şekilde sayfalama
  • Her kritere göre sıralama
  • Düzenleme ve silme işlemleri

Tüm bu işlemleri yaparken 1 tek satır bile kod yazmamıza gerek yokken neden kendimiz yazmayı yercih etmeliyiz peki?
Ne olursa olsun iyi bir yazılımcı olmanın yolu, iyi bir yazılım mimarisine uygun olarak yazmaktan geçer. Buradaki mimari microsoft mimarisi olmakla birlikte kendinizden hiçbirşey katmamış oluyorsunuz.

Peki hiç kullanmayacakmıyız?

Tabiiki kullanacağız ancak sadece gerektiği zamanlarda. Hazırcı olsakta zorda kaldığımız zaman ne yapacağımızı bilmemiz gerekmektedir. Mesela bir kayıt ekleme aşamasında sağlıklı bir işlem için string kontrollerini ve sql bağlantılarını bilmemiz gerektiğine inanıyorum.

Şimdi bu işlemleri birde code behind tarafına uygun olarak yapalım.

Öncelikle web.config içine server’ımızı tanımlayalım



manuelconn_1.png

Bu işlemden sonra web sayfamıza bir adet GridView ekleyelim ve F7‘ye basarak sayfamızın code behind tarafına geçelim.
Öncelikle sayfamızın en üstüne “using Systems.Data.SqlClient;” i ekleyerek sayfamızda veritabanı bağlantımızda sqlkullanacağımızı belirtiyoruz.

Sayfamızın yüklendiği zamanda yapacağı işlemleri öncelikle yazı ile kısaca anlatmaya çalışacağım.

Öncelikle veritabanı bağlantısı için web.config içine tanımladığımız connectionstring‘i bir string‘e atıyoruz.Bu işlem için ConfigurationManager‘ı kullandığımıza dikkat edin.

Connectionstring’imizi hazırladıktan sonra sırada SqlConnection tanımlamak geliyor.

  string conStr = ConfigurationManager.ConnectionStrings[”connectionServer”].ConnectionString.ToString();

Bu işlemi bir class içinde tanımlamakta mümkün tabii ki. Bir proje hazırlıyorsanız bu daha mantıklı tabii ki. Class tarafındaki kodumuz şöyle;

  public class baglanti
  {
  public static string  Baglan()
  {
  return ConfigurationManager.ConnectionStrings[”HysSqlString”].ConnectionString.ToString();
  }
  }
  Kullanımına gelince ;

  string  conStr = baglanti.Baglan();

  Seçim size kalmış artık biz kodlamaya devam edelim.

  protected void Page_Load(object sender, EventArgs e)
  {
  SqlConnection conn = new SqlConnection(dbconn.Baglan());
  conn.Open();
  SqlCommand cmdProducts= new SqlCommand(”Select * FROM [Products] ORDER BY [ProductName] ASC “, conn);
  SqlDataAdapter da = new SqlDataAdapter(cmdProducts);
  DataSet ds = new DataSet();
  da.Fill(ds);
  GridView1.DataSource = ds;
  GridView1.DataBind();
  }

Sayfamızın çıktısında ne gibi farklıklar olacak?

  • Sayfalama yapamıyacağız
  • Otomatik sıralama olmayacak

Ancak iki yöntemde işimize kesinlikle yarayacaktır.Bir sonraki yazımda burada kullandığımız Dataset’in anladığım kadarı ile mantığını anlatmaya çalışacağım.

Benzer Yazılar