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

bazen, verileri bir Windows formunda kullanıcı dostu bir biçimde göstermek yararlıdır, ancak verileri programınıza daha anlamlı bir biçimde depolar. Örneğin, yiyecek için bir sipariş formu, menü öğelerini bir liste kutusunda ada göre görüntüleyebilir. Ancak, siparişi kaydeden veri tablosu, yiyecek 'yi temsil eden benzersiz KIMLIK numaralarını içerir. Aşağıdaki tablolarda, yiyecek için sipariş formu verilerinin nasıl depolandığı ve görüntüleneceği bir örnek gösterilmektedir.

OrderDetailsTable

OrderID ItemID Miktar
4085 12 1
4086 13 3

ItemTable

ID Name
12 Patates
13 Tavuk

Bu senaryoda, OrderDetailsTable adlı bir tablo, görüntüleme ve kaydetme konusunda endişe ettiğiniz gerçek bilgileri depolar. Ancak, alan kazanmak için oldukça şifreli bir biçimde olur. Diğer tablo, ItemTable, yalnızca hangi kimlik numarasının hangi yiyecek adına eşdeğer olduğu ve gerçek yiyecek siparişleriyle ilgili hiçbir şey hakkındaki görünümle ilgili bilgileri içerir.

ItemTable ,, ComboBox ListBox veya CheckedListBox denetimine üç özellik aracılığıyla bağlanır. DataSourceÖzelliği bu tablonun adını içerir. DisplayMemberÖzelliği, denetimde göstermek istediğiniz tablonun veri sütununu içerir (yiyecek adı). ValueMemberÖzelliği, depolanan bilgiler (kimlik numarası) ile ilgili tablonun veri sütununu içerir.

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

Arama tablosu oluşturmak için

  1. ComboBox ListBox Forma, veya denetimini ekleyin CheckedListBox .

  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 öğe ile eşdeğer olduğunu belirten bilgi içeren tablo. Önceki senaryoda, bu ItemTable .
    DisplayMember Denetimde görüntülenmesini istediğiniz veri kaynağı tablosunun sütunu. Önceki senaryoda bu, "Name" (kodda ayarlamak için tırnak işaretleri kullanın).
    ValueMember Depolanan bilgileri içeren veri kaynağı tablosunun sütunu. Önceki senaryoda bu, "ID" (kodda ayarlamak için tırnak işaretleri kullanın).
  5. Bir yordamda, Add ControlBindingsCollection denetimin SelectedValue özelliğini, form girişini kaydeden tabloya bağlamak için sınıfının yöntemini çağırın. Ayrıca, Özellikler penceresindeki denetimin özelliğine erişerek bunu kod yerine tasarımcıda de yapabilirsiniz DataBindings . Önceki senaryoda, bu, OrderDetailsTable ve sütunudur "ItemID" .

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

Ayrıca bkz.