Combobox listview ilişkisi


Deprecated: Function create_function() is deprecated in /var/www/vhosts/digitaldunyam.net/coder.digitaldunyam.net/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  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();
        }

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;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 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();
        }

Bir Cevap Yazın

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