C# Windows Form Entity Framework Veritabanı Bağlantısı – Ahmet Cansever
Cuma , 24 Mart 2017
Anasayfa » C# » C# Windows Form Entity Framework Veritabanı Bağlantısı

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;

Hakkında admin

22 Yorumlar

  1. “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.

  2. 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.

  3. Veriyi kaydediyor fakat programı sonlandırdığımda veri tabanından siliniyor

    • db.SaveChanges(); satırlarını unutmuş olabilir misiniz?

      • 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.

          • Mail olarak gönderdim. Şimdiden teşekkür ederim.

          • 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.

          • Yardımınız ve ilginiz için sağol sorunu çözdüm. Kolay gelsin.

          • Rica ederim. İyi çalışmalar.

  4. Silmek için textboxa numara girmek yerine Datagrid’ de seçilen kaydı nasıl silebilirim?

    • 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.

  5. Doldur();Metoduna ne yazılıyor orayı atlamışsınız sanırım

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

Yorum Yap

Wordpress Tema indir