11 Ekim 2012 Perşembe

C# Asp.Net Dropdownlist Veri Tabanından Doldurmak

Asp.net te açılır kutumuzu veri tabanından çekeceğimiz bilgiler ile aşağıda yazacağım metodları kullanarak  doldurabiliriz. Örnek olarak ürünlerimizi barındıran bir web sitemiz olduğunu ve bu ürünleri sitemize ekler iken  kategorisini seçtiğimiz dropdownlist i düşünelim.şimdi bu dropdownliste kategorileri nasıl doldurduğumuzu görelim.

öncelikle  veri tabanından çektiğimiz kategorileri tutacak bir dataset oluşturur ve verileri buna doldururuz.
bize sonuç olarak dataset döndüren DatasetDoldur isminde bir fonksiyonumuz var ve bu fonksiyon parametre olarak sql cümlesi alıyor.daha sonra bu cümle çalışıyor ve kategorilerimizi bize dataset olarak döndürüyor.

public DataSet DatasetDoldur(string sql)
        {
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sql, Helper.BaglantiGetir());
            da.Fill(ds);
            return ds;
        }

 ikinci olarakta DropdownDoldur isminde bir metodumuz var.Bu metod içerisinde sql cümlemizi tanımlayabiliriz. burada bilmemiz gerekenler  DataTextField ve DataValueField ifadelerinin ne anlama geldiğidir.datatextfield bizim dropdownlist imizin görünen kısmını ifade eder. örneğin kategoriler düşünürsek gıda ,tekstil vs. dropdownlist açtığımızda bunlar görünür. ama genelde işlemler kategorilerin adı üzerinden değil benzersiz olan genelde ID dediğimiz anahtarlar üzerinden yapıldığından dolayı örneğin ben gıda kategorisini seçtiğimde bunun id si 7 olsun. Bu 7 değerinide datavaluefield kısmında saklanır.
datasource kısmı ise veri kaynağımızı gösterdiğimiz yerdir buradada datasetdoldur fonksiyonumuzu çağırarak dönecek datatable ı veri kaynağımız olarak gösteririz.

public void DropdownDoldur()
        {
            string Sorgu = "Select KategoriId,KategoriAdi From TblKategoriler";
            DropdownKategori.DataTextField = "KategoriAdi";
            DropdownKategori.DataValueField = "KategoriId";
            DropdownKategori.DataSource = DatasetDoldur(Sorgu);
            DropdownKategori.DataBind();
        }

iyi çalışmalar.