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
Forma bir ComboBox, ListBoxveya CheckedListBox denetimi ekleyin.
Veri kaynağınıza Bağlan.
İki tablo arasında bir veri ilişkisi oluşturun. Bkz . DataRelation Nesnelerine Giriş.
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"
.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.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin