none
MSSQL ComboBoxlar arası iletişim RRS feed

  • Soru

  • Merhabalar, 2 combo boxım var, birinde doktora ait bölüm seçiliyor, diğerinde ise o bölüme ait olan doktorların sergilenmesini istiyorum.

    Kodlar şu şekilde, burada bölüm adlarını çekiyorum;

    private void CBBolum()
            {
                cnn.Open();
                SqlCommand komut = new SqlCommand();
                komut.CommandText = "SELECT bolumad FROM BolumTbl";
                komut.Connection = cnn;
                komut.CommandType = CommandType.Text;
    
                SqlDataReader dr;
    
                dr = komut.ExecuteReader();
                while (dr.Read())
                {
                    cbBolum.Items.Add(dr["bolumad"]);
                }
                cnn.Close();
            }

    Burada ise bölüm adına ait olan comboboxta yazan bölüm adına göre o bölüme ait doktor adını çekmesini istiyorum;

    private void CBDoktor()
            {
                cnn.Open();
                SqlCommand komut = new SqlCommand();
                komut.CommandText = "SELECT doktorad FROM DoktorTbl where doktorbolum=@cbbolumtext";
    
                komut.Connection = cnn;
                komut.CommandType = CommandType.Text;
                komut.Parameters.AddWithValue("@cbbolumtext", cbBolum.Text);
                SqlDataReader dr;
    
                dr = komut.ExecuteReader();
                while (dr.Read())
                {
                    cbDoktor.Items.Add(dr["doktorad"]);
                }
                cnn.Close();
            }

    CBBolum adlı fonksiyonu formun load fonksiyonun içinde çalıştırıyorum, CBDoktor adlı fonksiyonu ise bölümlerin yazdığı comboboxın SelectedIndexChanged fonksiyonunun içinde çalıştırıyorum.

    Yaşadığım sorun ise bölüm adlarının yazdığı comboboxtaki veriyi her değiştirdiğimde doktor adlarının yazdığı comboboxa her seferinde isim eklenmesi.

    30 Kasım 2017 Perşembe 17:17

Yanıtlar

  • private void CBBolum()
    {
        DataTable tablo = new DataTable();
        using (SqlDataAdapter komut = new SqlDataAdapter("SELECT bolumad FROM BolumTbl", cnn))
        {
            komut.Fill(tablo);
        }
        cbBolum.DisplayMember = "bolumad";
        cbBolum.ValueMember = "bolumad";
        cbBolum.DataSource = tablo;
    }
    private void CBDoktor()
    {
        DataTable tablo = new DataTable();
        using(SqlDataAdapter komut = new SqlDataAdapter("SELECT doktorad FROM DoktorTbl where doktorbolum=@cbbolumtext", cnn))
        {     
             komut.Parameters.AddWithValue("@cbbolumtext", cbBolum.Text);
            komut.Fill(tablo);
        }
        cbDoktor.DisplayMember = "doktorad";
        cbDoktor.ValueMember = "doktorad";
        cbDoktor.DataSource = tablo;
    }



    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Emir Aslan 1 Aralık 2017 Cuma 23:16
    30 Kasım 2017 Perşembe 21:42

Tüm Yanıtlar

  • Comboyu temizlemeyi denedin mi. cbDoktor.Items.Clear(); cbDoktor.Items.Add(dr[“doktorada”]);
    30 Kasım 2017 Perşembe 17:47
  • private void CBBolum()
    {
        DataTable tablo = new DataTable();
        using (SqlDataAdapter komut = new SqlDataAdapter("SELECT bolumad FROM BolumTbl", cnn))
        {
            komut.Fill(tablo);
        }
        cbBolum.DisplayMember = "bolumad";
        cbBolum.ValueMember = "bolumad";
        cbBolum.DataSource = tablo;
    }
    private void CBDoktor()
    {
        DataTable tablo = new DataTable();
        using(SqlDataAdapter komut = new SqlDataAdapter("SELECT doktorad FROM DoktorTbl where doktorbolum=@cbbolumtext", cnn))
        {     
             komut.Parameters.AddWithValue("@cbbolumtext", cbBolum.Text);
            komut.Fill(tablo);
        }
        cbDoktor.DisplayMember = "doktorad";
        cbDoktor.ValueMember = "doktorad";
        cbDoktor.DataSource = tablo;
    }



    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Emir Aslan 1 Aralık 2017 Cuma 23:16
    30 Kasım 2017 Perşembe 21:42