| public void menuolustur() { string baglan = "data source=localhost;initial catalog=deneme;integrated security=true;"; /*Veritabanına bağlanmak için yolumuzu belirtiyoruz*/ SqlConnection connection = new SqlConnection(baglan); connection.Open(); SqlDataAdapter adp1 = new SqlDataAdapter("select * from kategori",connection); /*adp1 ile veritabanındaki kategori tablosunda sorgu çalıştırmayı sağladık*/ SqlDataAdapter adp2 = new SqlDataAdapter("select * from altkategori",connection); /*adp2 ile veritabanındaki altkategori tablosunda sorgu çalıştırmayı sağladık*/ DataSet ds = new DataSet(); /*veritabanlarımızın örneklerinin aktarılacağı datasetimizi oluşturduk*/ adp1.Fill(ds,"kategori"); /*dataset'imize kategori tablosunun örneği alındı*/ adp2.Fill(ds,"altkategori"); /*dataset'imize altkategori tablosunun örneği alındı */ ds.Relations.Add("iliski",ds.Tables["kategori"].Columns["kat_id"],ds.Tables["altkategori"].Columns["kat_id"]);
/*burada dataset nesnesinin bir özelliği olan relations özelliğini kullanarak iki tabloyu ilişkilendirdik ve bu ilişkimizi iliski olarak adlandırdık.. */ foreach (DataRow kategoriveri in ds.Tables["kategori"].Rows)//adım adım kategori tablosundaki verileri okudum // ve içeriğini kategoriveri içerisinde tutuyorum.. { /**/ MenuItem kategori = new MenuItem();//ust menu için ornek olusturdum kategori.ImageUrl = "ok.jpg";// burada menumun sol kısmında kullanacağım ok simgesini ekledim kategori.Text = kategoriveri["ad"].ToString();//üst menünün isim değerleri aktardım kategori.NavigateUrl = kategoriveri["link"].ToString();//ustmenunun linklerini aktardım Menu1.Items.Add(kategori);//ve burada tüm bu yaptıklarımı menu kontrolume aktardım
foreach (DataRow altkategoriveri in kategoriveri.GetChildRows("iliski"))// altmenulerimi olusturmak için kurmuş olduğum iliskiden //yararlandım ve iliski içerisinde olan altkategori tablosunun degerlerini satır satır okuyorum. { MenuItem altkategori = new MenuItem();// alt menu değerlerini olusturmak için item orneği oluşturuyorum altkategori.ImageUrl = "ok.jpg";//yine sol tarafdaki arrow'u ayarlıyorum altkategori.Text = altkategoriveri["ad"].ToString();//altmenu isimlerini altkategori veritabanından alıyorum.. altkategori.NavigateUrl = altkategoriveri["link"].ToString();//altmenuye ait linkleri aktarıyorum kategori.ChildItems.Add(altkategori);//alt menude olusmus durumda.. } }
} |