C# C# Windows Form Örnekleri Programlama

C# Windows Form Entity Framework Veritabanı Bağlantısı

Bu örneğimizde C# Windows Form kullanarak Entity Framework ile Select, Insert, Update ve Delete işlemlerini gerçekleştiren basit bir örnek yapacağız.  Örneğimizde SQL Serverde bulunan dbOkul isimli veritabanını kullanacağız. Öncelikle veritabanımızı oluşturarak başlıyoruz.

vtasarim            vtveri

 

Veri tabanımızı oluşturduktan sonra Form tasarımını aşağıdaki gibi oluşturuyoruz.

winform

Form tasarımını tamamladıktan sonra Entity Framework bağlantımızı aşağıdaki adımları takip ederek oluşturuyoruz.

Öncelikle Solution Explorer Penceresinde projemizin üzerinde sağ tıklayarak Add-NewItem tıklıyoruz.

ef1

 

Açılan pencereden ADO.NET Entity Data Model seçip Add butonuna basıyoruz.

ef2

 

Daha sonra açılan pencereden EF Designer from database seçeneğini seçiyoruz.

ef3

 

Buradan New Connection diyerek SQL Server’ da kullanacağımız database i seçiyoruz ve devam ediyoruz.

ef4

Gelen pencerede Tables seçeneğini işaretliyoruz.

ef5

Bu işlemlerden sonra oluşturulan Entity Data Model‘ imizin Solution Explorer penresine geldiğini göreceğiz.

ef6

Bağlantı işlemlerini tamamladıktan sonra kod kısmına geçiyoruz.

Veriler datagridview üzerinde Form açıldığında , Ekleme , Güncelleme ve Silme yapıldığında tazelenmesini sağlamak amacıyla Datagridview’ e getirilme işlemini bir metot oluşturarak yapacağız.

Öncelikle Public olarak nesnemizi aşağıdaki gibi oluşturuyoruz

ve Datagridview’ e doldurma işlemini doldur isimli bir metot ile gerçekleştiriyoruz.

Bu işlemden sonra form açılır açılmaz datagridview’de verilerimizin görüntülenmesi için Form_Load olayında

“doldur” isimli metodumuzu çağırıyoruz.

Daha sonra Kayıt Ekle butonuna çift tıklayarak aşağıdaki kodları yazıyoruz.

Bu sayede textboxlara öğrenci bilgilerini girip Ekledikten sonra veri tabanına ekleme ( insert) işlemi yapılacak ve doldur metodu tekrar çağırılarak verilerin tekrar getirilmesi sağlanacaktır.

Güncelle butonuna ise;

kodlarını yazıyoruz. Burada öğrenci numarasına göre güncelleme işlemi yapıldığına dikkat edelim.
Sıra Sil butonuna geldi. Yine silme işlemi de Öğrenci Numarasına göre yapılacağından kodlarımızı aşağıdaki şekilde oluşturuyoruz.
Uygulamamızı tamamlamış oluyoruz. Kodaların tamamını görmek isterseniz;

30 Yorum

  • Doldur methodunu yazdım ve benden dbOkulEntities için bir class oluşturmamı istedi. Bu classların içine neler yazmamız gerektiği konusunda da bilgilendirir misiniz ?

    • public List GetStaffs()
      {
      using (var context = new DbStaff())
      {
      return context.Staffs.ToList();
      }
      }
      ben doldurma kodu olarak kullandım bunu

  • merhabalar hocam öncelikle bizleri bilgilendirdiğiniz için çok teşekkür ederim yazdıklarınızı teker teker uygulamadım ancak koddan bir önceki aşamada diagramlar oluşmadı sistem hata verdi error no 6013 diye yardımcı olursanız çok teşekkür ederim:D

    • Çok geç bir cevap ama belki siteyi ziyaret edip bu hatayla karşılaşan yeni insanlar vardır.DATABASE te tablo oluştururken set primary key ‘ i işaretlemediğin için hata veriyor.

  • Merhaba
    using System.Data.Entity.Infrastructure;

    public partial class DB_ExamEntities : DbContext

    Infrastructure ekleyemyrm kırmızı görnyr ona bağlı olrak DbContext de öyle nen yapabilirim nerde yanlıs yaptm ?

  • “Unable to cast object of type ‘System.Windows.Forms.TextBox’ to type ‘System.IConvertible’.”
    Ekleme, silme ve güncelleme yapmaya çalışırken böyle bir hata alıyorum yardım ederseniz sevinirim.

  • void doldur() //Verileri Çekme (Select) { db = new dbOkulEntities(); dataGridView1.DataSource = db.ogrencis.ToList(); } bu komuttaki ogrencis nerden geldi?

    • wpf ile Entity Framework kullanımı için yapmış olduğum örneği izleyebilirsiniz. ogrencis ismini kendisi oluşturuyor.

      • if (hatavarmi==0)
        {
        ykullanici.Adi = txtKAd.Text;
        ykullanici.Kullaniciadi = txtKKullaniciAdi.Text;
        ykullanici.Soyadi = txtKSoyad.Text;
        ykullanici.Parola = txtKParola.Text;
        ykullanici.Telefon = txtKTelefon.Text;
        ykullanici.Dogum_Tarihi = dtpKDogumtarihi.Value;
        ykullanici.Yonetici=yoneticimi;
        db.Kullanicilar.Add(ykullanici);

        db.SaveChanges();

        }

        Şeklinde veri tabanına kayıt ggerçekleşiyor kontrol ettim kayıt işlemini yapıyor fakat programı kapattıktan sonra veri tabanını kontrol ettiğimde veriler gözükmüyor

        • Sınıf isminiz Kullanici varsayarak yazıyorum.if içinde en başa
          Kullanici ykullanici=new Kullanici();
          yazmalısınız.

          • Üst kısmında onu da yaptım ki zaten onu yapmazsam program hata verecektir diye düşünüyorum

          • Kodlarınızın tamamını göremiyorum şu an. İf içine alıp deneyip sonucu yazarmısınız.

          • if (hatavarmi==0)
            {
            Kullanici ykullanici = new Kullanici();
            ykullanici.Adi = txtKAd.Text;
            ykullanici.Kullaniciadi = txtKKullaniciAdi.Text;
            ykullanici.Soyadi = txtKSoyad.Text;
            ykullanici.Parola = txtKParola.Text;
            ykullanici.Telefon = txtKTelefon.Text;
            ykullanici.Dogum_Tarihi = dtpKDogumtarihi.Value;
            ykullanici.Yonetici=yoneticimi;
            db.Kullanicilar.Add(ykullanici);

            db.SaveChanges();

            }

            if içerisine aldım kullanici olarak ykullanici tanımladım fakat aynı problemi yaşıyorum

          • Anladım. Şu an programı çalıştıramıyorum bulunduğum ortamda. Yarın daha detaylı ilgilenebilirim acil değilse. Bir de son olarak bazen unutuluyor veritabanında Select ifadesinin yeniden çalıştırılması gerektiği. Böyle bir sorun yoksa yarın daha detaylı kontrol edebilirim.

          • Son dediğiniz select ifadesinin tekrar çalıştırılması olayını anlayamadım. Veri kayıtı sırasında select ifadesini kullandığımız bir yer bilmiyorum. Kaydın kontrol edilmesi için yazdığım ifade :

            foreach (Kullanici gkullanici in db.Kullanicilar.ToList())
            {
            MessageBox.Show(gkullanici.Id.ToString());

            }

          • SQL Server üzerinde kontrol ederken demek istedim. Bu arada projeniz çok özel değilse maille yollarsanız dediğim gibi yarın daha detaylı inceleyebilirim. Ya da örnek projeyi link olarak buraya koyarım.

          • Merhaba. Projenizde bulduğum sorun: EntityFramwork ile oluşturduğunuz model katmanının tekrar yapılması gerekmektedir. Bunu yapmadan evvel veritabanı dosyalarınızı SQLServer’a attach etmelisiniz. Eğer attach etmekte de sorun yaşarsanız, veritabanı klasörünüz üzerinde sağ tuş’a basıp güvenlikten tüm kullanıcı türleri için tam denetim yetkisi vermelisiniz. Model katmanını çıkardıktan sonra veritabanı üzerinde yapılan değişiklikler, veya denetim yetkisizliği durumlarında bu tip sorunlar oluşabilmektedir.

    • Emre UZUN Böyle ben kayıt yapabilirim.

      HuzurEviDB.Personels.Add(new Personel()
      {
      Profil = img,
      TC_KimlikNo = textBox6.Text,
      Adi = textBox1.Text,
      Soyadi = textBox2.Text.ToUpper(),
      Cinsiyet = cins,
      PersonelAdi = textBox8.Text,
      Sifre = textBox7.Text,
      Yetki = 0
      });
      HuzurEviDB.SaveChanges();

    • kayıt silme butonundaki;
      int silinecek = Convert.ToInt32(textBox1.Text);
      kod satırı yerine
      int silinecek = ((ogrenci)dgogrenci.SelectedItem).Numara;
      kod satırını yazın.

    • Yazıyor üst bölümde.
      void doldur() //Verileri Çekme (Select) { db = new dbOkulEntities(); dataGridView1.DataSource = db.ogrencis.ToList(); }

Yorum yap