Aracılığıyla paylaş


Nasıl yapılır: Bir Windows Forms ComboBox, ListBox veya CheckedListBox Denetimi için Arama Tablosu Oluşturma

Bazen windows formunda verileri kullanıcı dostu bir biçimde görüntülemek, ancak verileri programınız için daha anlamlı bir biçimde depolamak yararlı olabilir. Örneğin, yemek sipariş formu menü öğelerini liste kutusunda ada göre görüntüleyebilir. Ancak siparişi kaydeden veri tablosu, yemeği temsil eden benzersiz kimlik numaralarını içerir. Aşağıdaki tablolarda yiyecek sipariş formu verilerinin nasıl depolanıp görüntüleneceğine ilişkin bir örnek gösterilmektedir.

OrderDetailsTable

OrderID ItemID Miktar
4085 12 Kategori 1
4086 13 3

ItemTable

Kimlik Ad
12 Patates
13 Tavuk

Bu senaryoda OrderDetailsTable tablosundan biri, görüntüleme ve kaydetmeyle ilgilendiğiniz gerçek bilgileri depolar. Ancak alan kazanmak için oldukça şifreli bir şekilde yapar. Diğer tablo olan ItemTable, yalnızca hangi kimlik numarasının hangi yiyecek adına eşdeğer olduğu hakkında görünümle ilgili bilgiler içerir ve gerçek gıda siparişleri hakkında hiçbir şey içermez.

ItemTable, üç özellik aracılığıyla , ListBoxveya CheckedListBox denetimine ComboBoxbağlanır. DataSource özelliği bu tablonun adını içerir. özelliği, DisplayMember denetimde görüntülemek istediğiniz tablonun veri sütununu (yiyecek adı) içerir. özelliği, ValueMember bu tablonun depolanan bilgileri (kimlik numarası) içeren veri sütununu içerir.

OrderDetailsTable, özelliği aracılığıyla erişilen bağlama koleksiyonu tarafından denetime DataBindings bağlanır. Koleksiyona bağlama nesnesi eklediğinizde, bir denetim özelliğini bir veri kaynağındaki (OrderDetailsTable) belirli bir veri üyesine (kimlik numaraları sütunu) bağlarsınız. Denetimde bir seçim yapıldığında, bu tablo form girişinin kaydedildiği yerdir.

Arama tablosu oluşturmak için

  1. Forma bir ComboBox, ListBoxveya CheckedListBox denetimi ekleyin.

  2. Veri kaynağınıza Bağlan.

  3. İki tablo arasında bir veri ilişkisi oluşturun. Bkz . DataRelation Nesnelerine Giriş.

  4. Aşağıdaki özellikleri ayarlayın. Bunlar kodda veya tasarımcıda ayarlanabilir.

    Özellik Ayar
    DataSource Hangi kimlik numarasının hangi öğeyle eşdeğer olduğu hakkında bilgi içeren tablo. Önceki senaryoda, bu şeklindedir ItemTable.
    DisplayMember Denetimde görüntülemek istediğiniz veri kaynağı tablosunun sütunu. Önceki senaryoda, bu (kodda ayarlamak için tırnak işaretlerini kullanın) şeklindedir "Name" .
    ValueMember Depolanan bilgileri içeren veri kaynağı tablosunun sütunu. Önceki senaryoda, bu (kodda ayarlamak için tırnak işaretlerini kullanın) şeklindedir "ID" .
  5. Bir yordamda, denetimin AddControlBindingsCollectionSelectedValue özelliğini form girişini kaydeden tabloya bağlamak için sınıfının yöntemini çağırın. Bunu, Özellikler penceresinde denetimin DataBindings özelliğine erişerek kod yerine Tasarım Aracı de yapabilirsiniz. Önceki senaryoda bu OrderDetailsTable, sütunu ise şeklindedir "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")  
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");  
    

Ayrıca bkz.