İlginizi Çekebilir
C# Eğitimleri
  1. Ana Sayfa
  2. C Sharp

C# Nesne Yaklaşımlı SQL Modelleme

C# Nesne Yaklaşımlı SQL Modelleme
+ - 0

C# Nesne Yaklaşımlı SQL Modelleme , yazımız ile c sharp eğitimlerimize devam ediyoruz. Bu yazı için yaklaşık 30 dakika başlık düşündüm. Yani dürüst olayım bu yöntemin bir adı var mı bilmiyorum. Kullanım açısından bana çok kolaylık sağladığı için kullanıyorum. Bu yöntemi internette bir eğitim setinden veya yazıların birinden öğrenmediğimden bir adı var mı bilmiyorum. Bu yöntemi ortak iş yaptığım birinin projesinde görmüştüm. Çok mantıklı geldiğinden de hemen benimseyip kullanmaya başlamıştım. Eğer siz bu yöntemin adını biliyorsanız yorum kısmından yazabilirsiniz. Gelin adını bilmediğim C# Nesne Yaklaşımlı SQL Modelleme  yazıma geçelim. :D

C# Nesne Yaklaşımlı SQL Modelleme

Bu yazımda anlatacağım yöntem şu şekildedir.

Öncelikle sql serverdeki bir tabloyu class olarak açıyoruz. Insert, update vs bir işlem yapacağımızda bu class’ı çağırıp verilerimizi bu class’a gönderiyoruz. Yine bu class içerisinde bir metod oluşturup bu metoda parametre olarak verileri tuttuğumuz class’ı gönderiyoruz. Normal şekilde insert kodumuzu yazıp, veri olarak da bu class içerisindeki verileri gönderiyoruz. Genel olarak bu şekilde anlatabilirim. Kodları verdiğimde daha net anlayacağınızı düşünüyorum.

Şimdi kod üzerinden anlatmaya başlayayım.

Öncelike bir class açalım ve adına MySQLModel diyelim. Sonrasında bu class’ı açıp, SQL Server’deki bir tablomuzu aşağıdaki gibi modelleyelim. (Tablomuzun adı AVUKATLAR olsun)

        public class AVUKATLAR
        {
            public int avk_RECno = 0;
            public string avk_Ad_Soyad = "";
            public string avk_tel = "";
            public string avk_mail = "";
            public string avk_adres = "";
        }

Bu class SQL Server’deki bir tabloyu temsil ediyor.

Sonra bu class’ın hemen altına SQL’e avukat kaydetme (insert) işlemini ve güncelleme (update) yapan metodumuzu yazalım.

 public static int AvukatKAydet(Avukatlar avk)
        {
            if (avk.avk_RECno == 0)
            {
                // bu benim sql işlemleri için hazırladığım bir class'tır
                Bt.sql.CommScalar( 
                               "     INSERT INTO [AVUKATLAR]         "
                               + "                ([avk_Adi]         "
                               + "                ,[avk_Kurum]         "
                               + "                ,[avk_tel]         "
                               + "                ,[avk_mail]         "
                               + "                ,[avk_adres])         "
                               + "          VALUES         "
                               + "                (   '" + avk.avk_Ad_Soyad + "'       "//<avk_Adi, nvarchar(50),>         "
                               + "                ,    " + avk.avk_Kurum + "      "//<avk_Kurum, int,>         "
                               + "                ,   '" + avk.avk_tel + "'       "//<avk_tel, nvarchar(50),>         "
                               + "                ,   '" + avk.avk_mail + "'      "//<avk_mail, nvarchar(50),>         "
                               + "                ,   '" + avk.avk_adres + "'     "//<avk_adres, nvarchar(max),> "
                               + ")         "
                                               );
                return int.Parse(Bt.sql.CommScalar("select SCOPE_IDENTITY() from AVUKATLAR ").ToString()); 
                // SCOPE_IDENTITY() ilgili tabloya en son eklenen kaydın ıdentıty kolonundaki değeri döner (ID kolonu diyebiliriz.)
            }
            else
            {
                Bt.sql.CommScalar(
                              "     update  [AVUKATLAR]       set    "
              + "                 [avk_Adi]    =     '" + avk.avk_Ad_Soyad + "'       "//<avk_Adi, nvarchar(50),>         "
              + "                ,[avk_Kurum]  =         " + avk.avk_Kurum + "      "//<avk_Kurum, int,>         "
              + "                ,[avk_tel]    =      '" + avk.avk_tel + "'       "//<avk_tel, nvarchar(50),>         "
              + "                ,[avk_mail]    =      '" + avk.avk_mail + "'      "//<avk_mail, nvarchar(50),>         "
              + "                ,[avk_adres]   =      '" + avk.avk_adres + "'     "//<avk_adres, nvarchar(max),> "
              + "        where     avk_RECno = " + avk.avk_RECno + "     "
                              );
                return avk.avk_RECno;
            }

        }

Gördüğünüz gibi., Kaydet metodumuza AVUKATLAR class’ımızı göndermiş olduk. SQL işlemlerini yaparken de parametre adını kullanarak class içerisindeki değişkenlerin tuttuğu verileri kullanmış oluyoruz. Bu şekilde kayıt ve güncelleme işlemlerini yapıyorum.

Şimdi burası arka plandı. Şimdi kaydet butonun altında bu classı nasıl kullandığıma geçelim.

            MySQLModel.Avukatlar avk = new MySQLModel.Avukatlar()
            {
                avk_Ad_Soyad = txt_avukat_Adi.Text,
                avk_adres = txt_Adres.Text,
                avk_mail = txt_Mail.Text,
                avk_tel = txt_avukat_tel.Text,
                avk_RECno = Convert.ToInt32(calcEdit1.EditValue)
            };
            MySQLModel.AvukatKaydet(avk);

Kaydet butonu alıntda da bu şekilde kullanıyorum.

SQL Serverdeki tabloyu bir nesne olarak tanımlıyorum. Kayıt yapacağım anda bu nesneden yeni nesne türetip nesneyi oluşturan verileri dolduruyorum. Sonrasında da bu nesneyi Kaydet metoduna gönderiyorum. Bu şekilde nesne içerisndeki değişkenlerde tutulan verileri metoda yollamış oluyoruz. Metod ise bu verileri alıp insert / update işlemlerini yapıyor.

 

Bu işlemin en sevdiğim yanı ise nesneyi tanımlayıp değişkenlere veri atamaya başladığınızda, bir kere kullandığınız yani veri ataması yaptığınız değişkeni size göstermiyor. Bu şekilde aynı değişkene iki kere veri ataması yapmıyor yada bazı değişkenlere veri göndermeyi unutma gibi bir ihtimal de kalmıyor.

Bu yöntem biraz entity framework code first’e benziyor. Ancak bu yazıda verdiğim yöntem çok daha basit ve sade halidir demem yanlış olmaz sanırım.


C# Nesne Yaklaşımlı SQL Modelleme , yazımızda bu kadar dostlar. Dediğim gibi bu yöntemin adını bilmediğimden başlığı bu şekilde verdim. Eğer siz biliyorsanız yorum atarak söylersiniz.

C Sharp Eğitim Seti ve ERP Programlama eğitimi sayfasına gitmek için tıklayınız. Buraya tıklayarak Github Projeme ulaşabilirsiniz.

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)