KMRT BSRN

"Hiç kimsenin ilgisine ihtiyaç duymadığın gün olgunlaşırsın. Hiç kimseden beklentiye girmediğin gün yara almazsın. Ve hiç kimseye bağımlı kalmazsan kazanırsın." OSHO

DataGridView ile ADO.NET Entity Framework İlişkisi – 1

Yorum bırakın


Sonunda hastayım. Gülümseme Biliyorum bunun gülünecek bir yanı yok hatta en sevmediğim hastalıklardan birini yaşıyorum. Boğazlarım şişti ve yediklerimden hiçbir şey anlamıyorum. Üzerimde bir kırgınlık var. Boğazlarımın şişikliği burnumun tıkanmasına sebep oluyor. Sanırım bu yüz ifadesi daha doğru olacak. Üzgün gülümseme Yine de bu hasta halim benim paylaşım yapmama engel olamıyor. İçimde çarşamba hatta perşembe gününden beri paylaşmak istediğim bir konu var. Heyecanla paylaşmak istiyordum. Fakat araya bu hastalık işi girince biraz gecikti. Sözü fazla uzatmadan konuya giriyorum. Amacımız her zaman olduğu gibi az kodla çok iş başarmak ve ilişkili bir veritabanından veri çekmek, yeni veri eklemek, güncelleme ve silme işlemlerini nasıl yapabileceğimizi Entity Framework tarafından inceliyor olacağız.

Öncelikle bir test projesi açıyoruz. Projemiz bir Windows Forms Projesi olacak. Projemize bir Compact SQL Server veritabanı ekliyoruz. Veritabanımız basit olacak. İki adet tablo içerecek ve bu tablolar birbirleri ile ilişkili olacaktır.

Projenin ilk görünümü

 

Veritabanı tablolarımız şunlar;

“Book” – Kitaplar Tablosu

Book tablosunun kolonları ve özellikleri.

“BookType” – Kitap Tipi Tablosu

BookType tablosunun kolonları ve özellikleri.

Tablolardaki “ID” kolonu “IDENTITY” olarak ayarlanmıştır. Bu veritabanımızı temsil edecek ve üzerinde işlemler yapacak bir ADO.NET Entity Framework Model’i oluşturalım.. “CTRL + SHIFT + A” ile projemize yeni bir nesne model ekliyoruz.

ADO.NET Entity Framework Model eklenmesi.

ADO.NET Entity Framework Model eklenmesi.

ADO.NET Entity Framework Model eklenmesi.

ADO.NET Entity Framework Model eklenmesi.

Böylece projemizin son hali böyle olacak.

image

Formumuza bir “DataGridView” koyuyoruz ve “Dock” özelliğini “Fill” ayarlıyarak tüm forma yayılmasını sağlıyoruz.

Form'a DataGridView eklenmesi.

Ardından projemize 2 adet “BindingSource” ekliyoruz. Bu kontroller bizim tablolarımızı temsil edecekler.. Sonrasında sırasıyla bu kontrollere tablolarımızı bağlıyoruz. Sırasıyla BindingSource’lar seçilir ve “Add Project Data Source..” kısmından Entity Model’imizin ilgili nesnesi seçilir.

Binding Source kontrollerinin eklenmesi.

Binding Source kontrollerinin DataSource ayarlarının yapılması.

Binding Source kontrollerinin DataSource ayarlarının yapılması.

Binding Source kontrollerinin DataSource ayarlarının yapılması.

BookBindingSource kontrolünün DataSource ayarlarının yapılması.

BookTypeBindingSource kontrolünün DataSource ayarlarının yapılması.

bookBindingSource” ‘u –> “Book” nesnesine ve “bookTypeBindingSource” ‘u –> “BookType” nesnesine bağladıktan sonra işlemlerimiz neredeyse bitmek üzere. Formumuzdaki “DataGridView1” ‘i seçiyoruz ve “Smart Tag” ‘ı kullanarak “DataSource” özelliğinde “bookBindingSource” ‘u seçiyoruz..

DataGridView1 kontrolünün DataSource ayarlarının yapılması.

Ardından “Edit Columns” seçeneği seçilir. “BookType” kolonu silinir.

DataGridView1 kontrolünün Columns ayarlarının yapılması.

DataGridView1 kontrolünün Columns ayarlarının yapılması.

BookTypeID” kolonu seçilir ve “ColumnType” özelliği “DataGridViewComboBoxColumn” seçilir.

DataGridView1 kontrolünün BookTypeID kolonu ayarlarının yapılması.

Ardından “DataSource” özelliği “bookTypeBindingSource” , “DisplayMember” özelliği “TypeDesc” , “ValueMember” özelliği “ID” ve “DataPropertyName” özelliği “BookTypeID” olarak ayarlarız..

DataGridView1 kontrolünün BookTypeID kolonu ayarlarının yapılması.

Uygulamamızın tasarım aşamasında son hali bu şekildedir.

Formun görünümü.

Şimdi “Load” olayında verilerimizi çekerek ilgili binding source nesnelerimizi dolduralım. Böylece veritabanına girdiğimiz örnek veriler listelenecektir.

Form2.cs
  1. public partial class Form2 : Form
  2. {
  3.     // Modelimizi bir lokal de?i?kende tutuyoruz.
  4.     private TestBaseEntities Entity = null;
  5.  
  6.     public Form2()
  7.     {
  8.         InitializeComponent();
  9.  
  10.         // Modelimizin bir nesnesini olu?truyoruz.
  11.         this.Entity = new TestBaseEntities();
  12.  
  13.         // Load olay?m?z? tan?ml?yoruz..
  14.         this.Load += new EventHandler(Form2_Load);
  15.     }
  16.  
  17.     private void Form2_Load(object sender, EventArgs e)
  18.     {
  19.         // S?ras?yla ilgili Binding Source'lar? Modelimiz ile dolduruyoruz.
  20.         this.bookTypeBindingSource.DataSource = this.Entity.BookTypes;
  21.         this.bookBindingSource.DataSource = this.Entity.Books;
  22.     }
  23.  
  24.     private void button1_Click(object sender, EventArgs e)
  25.     {
  26.         // Ekrana koydu?umuz bir butona t?kland???nda
  27.         // de?i?iklikleri kaydediyoruz.
  28.         this.Entity.SaveChanges();
  29.     }
  30. }

Bu işlemlerden sonra veritabanınızda örnek verileriniz varsa şöyle bir sonuç oluşacaktır.

Uygulamanın son hali.

Combobox kolon verisini değiştirilmesi.

Kaydet” butonuna tıklandığında tüm verilerimiz değil sadece güncellenen, yeni eklenen ve silinen veriler veritabanına aktarılarak işleme alınır. Bir satır seçilip “DELETE” tuşuna basıldığında satır silinebilir. Kaydetme işlemi yapıldığında veritabanına kaydedilecektir.

Bu konunun bir seri olmasını düşünüyorum. Bu makale ile bir giriş yapmış olduk.

Herkese iyi kodlamalar..

Yazar: K. Murat BAŞEREN, MBA, MCP

I am a senior software developer, MCP, consultant, blogger, former chemist and software trainer. My interests range from software developer to technology. I am also interested in web development, education, and coffee.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s