Combobox listview ilişkisi

Windows formda Combobox kontrolü ve akabinde listviewe seçilene göre veritabanından çekilen veriyi göstermek istemişizdir. Basit bir combobox listview ilişkisi olan bir uygulama ile konuyu öğrenelim.

[wpdm_file id=18]

Öncelikle verileri veritabanından çekeceğimiz için combobox listview ilişkisinin ortamını uygun tablolarla ayarlayalım. Senaryomuz gereği iki tablo oluşturalım. İlk tablo kişiler tablosu olsun. İçeriği; adi, soyadi, takimi(tipi int). Diğer tablo combobox da gözükecek olan takımlar tablosu olsun. İçeriği; id, takimadı(nvarchar tipli) oluşturup. Kişiler tablosundaki takimi kolonu ile Takımlar tablosundaki id yiz resimdeki gibi ilişkilendirin. İlişkilendirme yaptıktan sonra takımları girin ve kişilerle birlikte takım numaralarını resimdeki gibi girin.

iliskilendirme

kisiler-takimlar-tablosu

Veritabanı tarafını bitirdikten sonra form kısmına geçebiliriz. Forma resimdeki gibi combobox ve listview ekleyip form load olayına veritabanından takımlar tabolsundaki takım isimlerini combobox kontrolüne çekelim;

listview-combobox-kontrolu

[cc lang=’csharp’ ] SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);
private void Form1_Load(object sender, EventArgs e)
{

SqlCommand cmd = new SqlCommand(“Select takimAdi from tblTakimlar”, sql);
sql.Open();
SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())
{
comboBox1.Items.Add(rdr[0]);
}
sql.Close();
}[/cc]

Seçilen takımdaki kişileri gösterebilmek için listview kontrolüne veritabanından iki tabloyu sql join komut ile birleştirerek ilgili kategori detayını kontrolde göstermek için combobox SelectedIndexChanged olayına aşağıdaki kodları yazalım;

[cc lang=’csharp’ ] private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listView1.Items.Clear();

SqlCommand doldur = new SqlCommand(“select adi, soyadi, takimAdi from tblKisiler td join tblTakimlar tk on td.takimi=tk.id where takimi='” + (comboBox1.SelectedIndex + 1).ToString() + “‘”, sql);
sql.Open();
SqlDataReader rdr = doldur.ExecuteReader();
while (rdr.Read())
{
ListViewItem li = new ListViewItem();
li.Text = rdr[“adi”].ToString();

li.SubItems.Add(rdr[“soyadi”].ToString());
li.SubItems.Add(rdr[“takimAdi”].ToString());

listView1.Items.Add(li);
}

sql.Close();
}[/cc]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir