DropDownList Sorunu

Kodla Büyü

ulutas55

Site Gezgini
Mesajlar
95
Arkadaşlar resimde de görüleceği üzere 3 tane ddl var. üçünede resimde görülen veritabanındaki tabloların verilerini yükleyeceğim.
1. ddl 'te herhangi bir filtreleme yapmadan yüklüyorum. fakat 2. ddl te yüklerken id kontrolü yapmam lazım ama biyerlerde bişeyleri eksik yapıyorum galiba ddlUrunTuru nden gelen id ile Urunler tablomdaki UrunTuruID yi eşleştiremiyorum. daha doğrusu indexi alıyor.
Nerde hata yapıyorum? Ne eksik kaldı bulamadım :?

Kod:
   public void UrunYukle()
    {   
        OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("../VT.accdb"));
        OleDbCommand srg = new OleDbCommand("select * from UrunGrubu", bag);
        bag.Open();
        OleDbDataReader oku = srg.ExecuteReader();

        ddlUrunGrubu.Items.Add("..:: Seçiniz ::..");
        ddlUrunTuru.Items.Add("..:: Seçiniz ::..");
        ddlUrun.Items.Add("..:: Seçiniz ::..");

        ddlUrunTuru.Enabled = false;
        ddlUrun.Enabled = false;

        while (oku.Read())
        {
            ddlUrunGrubu.Items.Add(oku["UrunGrubuAdi"].ToString());
            ddlUrunGrubu.DataValueField = oku["UrunGrubuID"].ToString();
            ddlUrunGrubu.DataBind();
        }
    }

    protected void ddlUrunGrubu_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlUrunTuru.Enabled = true;
        ddlUrunTuru.Items.Clear();

        ddlUrunTuru.Items.Add("..:: Seçiniz ::..");

        OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("../VT.accdb"));
        OleDbCommand srg = new OleDbCommand("select * from UrunTuru  WHERE UrunGrubuID='" + ddlUrunGrubu.SelectedIndex + "'", bag);
        bag.Open();
        OleDbDataReader oku = srg.ExecuteReader();
        while (oku.Read())
        {
            ddlUrunTuru.Items.Add(oku["UrunTuruAdi"].ToString());
            ddlUrunTuru.DataValueField = oku["UrunTuruID"].ToString();
            ddlUrunTuru.DataBind();
        }
        bag.Close();

        ddlUrun.Enabled = false;
        ddlUrun.Items.Clear();
        ddlUrun.Items.Add("..:: Seçiniz ::..");
    }

    protected void ddlUrunTuru_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlUrun.Enabled = true;
        ddlUrun.Items.Clear();

        ddlUrun.Items.Add("..:: Seçiniz ::..");
        
        OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("../VT.accdb"));
        OleDbCommand srg = new OleDbCommand("select * from Urunler  WHERE UrunGrubuID='" + ddlUrunGrubu.SelectedIndex + "'", bag);
        //OleDbCommand srg = new OleDbCommand("select * from Urunler", bag);
        bag.Open();
        OleDbDataReader oku = srg.ExecuteReader();
        while (oku.Read())
        {
            ddlUrun.Items.Add(oku["UrunAdi"].ToString());
            ddlUrun.DataValueField = oku["UrunID"].ToString();
            ddlUrun.DataBind();
        }
        bag.Close();
    }
 

Ekli dosyalar

  • liste.jpg
    liste.jpg
    27.7 KB · Görüntüleme: 727
  • vt.jpg
    vt.jpg
    143.9 KB · Görüntüleme: 727
emin olmamakla birlikte datavalue kullanabilmen için datatable kullanman ve ddlnin datasource özelliğine bu datatable ı göstermen gerekiyor diye biliyorum
 
hocam veritabanı şemasında bence bi yanlışlık var, 3. tabloda 2 tane bağlantı var. öyle değil de tek bağlantı olması gerekir. bence hata oradan kaynaklanıyor, veritabanını tekrar hazırlayın bence.
 
Sorun Çözüldü :D

İlgilenen arkadaşlara teşekkürler :alkis: :alkis:

DataTable kullanınca olay çözüldü hocam sağolun :+1:
ziyaunal' Alıntı:
emin olmamakla birlikte datavalue kullanabilmen için datatable kullanman ve ddlnin datasource özelliğine bu datatable ı göstermen gerekiyor diye biliyorum
 
Geri
Üst