Linq to Sql "LinqDataSource"


Merhaba Arkadaşlar;

 Daha önce Linq to Object ile basit bir Linq Sorgusu yazmıştık. Bu sefer LinqDataSource kullanarak Insert Update ve Selectsorguları yazıcaz.

Bunun için öncelikle bir database oluşturmanız gerekecek. Ben daha önceki örneklerimde de kullandığım ClassromWorks isimli DB'de olan tbKisiKayit tablomdan yararlanıcam.

 

Daha sonra VS 2008 ile yeni bir web sayfası açın. Burada ilk öncelikle DB ile bağlantımızı sağlıcak, bir Linq to Sql Classes oluşturuyoruz. Burada yapacağımız işlemler, normal bir Object Data Soruce'a yaptığımız işlemden daha farklı değil. Karşımıza gelen yeni sayfaya, Server Explorer dan DB ile bağlantıya geçtiktek sonra, hangi tablo ile ilgili işlem yapacaksınız onu DragandDrop yöntemi ile sürükleyip bırakmanız yeterli olcaktır.

 

Biz bu işlemi yaptıkdan sonra, web.config dosyamızda bir ConnectionString oluşmuş oluyor. İlk olarak sayfamızın .cs tarafına geçip Page_Load olan yere, o anda tbKisiKayit tablomuzdaki bilgileri benim istediğim şekilde getiricek olan kodları yazıyoruz.

protected void Page_Load(object sender, EventArgs e)

    {

        lnqDataClassesDataContext contex = new lnqDataClassesDataContext();

        var query = from c in contex.tbKisiKayits

                    select c.Adi;

        foreach (var item in query)

        {

            Response.Write(item + "<br>");

        }

    }

Burada oluşturduğumuz .dbml class'ımızı kullanarak bir nesne türetip, daha sonra bu nesne vasıtası ile, lnqDataClassesDataContext class'ımdan ihtiyacım olan bilgiye ulaşıyoruz.

Sayfa tasarımımız aşşağıdaki resim gibidir;

Buradaki kodlarımız fazla işlevsel olmayacak. Neden derseniz, öncelikle sabit olan kayıtları kontrol ettirilmesinin nasıl çalıştığını bir görelim, bundan sonraki örneğimizde biraz daha işlevsel örnek yaparız. İnsert butonuna bastığımızda sayfamızın .cs taraındaki sabit veriyi ekleme, update butonuna bastığımızda .cs sayfasından sabit olarak tanımlanan çbir ID değerine göre güncelleme ve aynı şekilde sabit bir kaydın silinmesi için gerekli kodları yazıcaz. Bu işlemler sırası ile Button1, 2, 3 taraından yapılacak.

Button1_Click event'ında gerçekleşecek kod;

lnqDataClassesDataContext contex = new lnqDataClassesDataContext();

        tbKisiKayit tb = new tbKisiKayit();

        tb.Adi = "Ahmet Sertay";

        tb.Soyadi = "HALKA";

        tb.Adres = "BALÇOVA";

        tb.Tel = "1234554321";

        tb.GSM = "533335";

        //ya da aşşağıdaki gibi tek satırda yapılabilir.

        /*tbKisiKayit tb1 = new tbKisiKayit() { Adi = "Sertay", Soyadi = "HALKA", Adres = "BALÇOVA", Tel = "87897", GSM = "7897" };*/

        contex.tbKisiKayits.InsertOnSubmit(tb);

        contex.SubmitChanges();

Yukarıda Page_Load kısmında yaptığımız işleme ek olarak, tbKisiKayit'tan da bir tb adında nesne üretip daha sonra bu nesne ile tbKisiKayit tablomun sütunlarına ulaşıyorum. Daha sonrada değeri istediğim sütuna ekliyorum.

Button2_Click event'ına baktığımızda;

lnqDataClassesDataContext contex = new lnqDataClassesDataContext();

        tbKisiKayit tb = (from c in contex.tbKisiKayits where c.Soyadi == "sertay" select c).SingleOrDefault();

        tb.Adi = "Boran";

        tb.Soyadi = "Şentürk";

        tb.Adres = "BOSTANLI";

        tb.Tel = "77777777";

        tb.GSM = "111111111";

        contex.SubmitChanges();

Burada where cümleciğine normal Sql cümleciğindeki gibi bir parametere atıyorum ve soyadı sertay olan kaydı güncellemesini istiyorum.

Button3_Click event'ında ise update'te olduğu gibi bir parametre atayarak, tablodaki kaydı silmesini istiyorum.

lnqDataClassesDataContext contex = new lnqDataClassesDataContext();

        tbKisiKayit tb = (from c in contex.tbKisiKayits where c.Adi == "Ahmet Sertay" select c).FirstOrDefault();

        contex.tbKisiKayits.DeleteOnSubmit(tb);

        contex.SubmitChanges();

Insert yaparken DataContext class'ımdan InsertOnSubmit ve SubmitChanges Update de SingleOrDefault, Delete'te ise FirstOrDefault ve SubmitChanges  kullanıldığına dikkat edin. Bunlar sizin yazdığınız sorguya uygun metotlardır.

İyi Çalışmalar, Kolaygelsin.







Blog Posts' Cloud