merhaba;
bu makalede devexpress gridcontrol üzerinde master-detail işleminin nasıl yapıldığını açıklamaya çalışacağım.
yukarıdaki resimdede gördüğünüz gibi master-detail yapısı; birden fazla ilişkili tabloyu bir arada göstermeyi amaçlar.bunu yaparken dataset içerisindeki tablolarda ilişki kurmamız gerekmektedir.aşağıdaki örnekte gridcontrol üzerinde master-detail yapısının ne şekilde kurulabileceği belirtilmiştir.
ilk olarak 2 adet tablo oluşturmalıyız.
1. Tablomuz kullanıcı tablosu. Alanları;
Id (int,auto increment,not null)
KullaniciAdi (string,not null)
Soyadi (string,not null)
2. Tablo IletisimBilgileri Alanlari;
Id (int,auto increment,not null)
KullaniciId (int,not null) -->Kullanıcı tablosunun Id alanı ile ilişkili.Child tablo.
Telefon (string,not null)
Mail(string,not null)
Daha fazla bilgi için : https://documentation.devexpress.com/#windowsforms/DevExpressXtraGridGridControl_ForceInitializetopic
Hepinize Kolay Gelsin
bu makalede devexpress gridcontrol üzerinde master-detail işleminin nasıl yapıldığını açıklamaya çalışacağım.
yukarıdaki resimdede gördüğünüz gibi master-detail yapısı; birden fazla ilişkili tabloyu bir arada göstermeyi amaçlar.bunu yaparken dataset içerisindeki tablolarda ilişki kurmamız gerekmektedir.aşağıdaki örnekte gridcontrol üzerinde master-detail yapısının ne şekilde kurulabileceği belirtilmiştir.
ilk olarak 2 adet tablo oluşturmalıyız.
1. Tablomuz kullanıcı tablosu. Alanları;
Id (int,auto increment,not null)
KullaniciAdi (string,not null)
Soyadi (string,not null)
2. Tablo IletisimBilgileri Alanlari;
Id (int,auto increment,not null)
KullaniciId (int,not null) -->Kullanıcı tablosunun Id alanı ile ilişkili.Child tablo.
Telefon (string,not null)
Mail(string,not null)
//bağlantı için gerekli SqlConnection nesnesi oluşturulur ve bağlantı açılır. SqlConnection qcon = new SqlConnection("baglantıcumlesi"); qcon.Open(); //SqlDataAdapter nesnesinin yardımıyla her iki tablo da sorgulanarak sonuç dataset'te 2 ayrı tabloya aktarılır. SqlDataAdapter qadap = new SqlDataAdapter("Select * from Kullanici", qcon); SqlDataAdapter qIletisimBilgileri = new SqlDataAdapter("Select * from IletisimBilgileri", qcon); //dataset nesnesi oluşturulur ve DataAdapter nesnelerindeki veriler fill metodu ile DataSet içerisindeki tablolara aktarılır. DataSet qdataset = new DataSet(); qadap.Fill(qdataset[0]); qIletisimBilgileri.Fill(qdataset[1]); //DataSet üzerindeki anahtar ve alt anahtarların tanımı yapılır. DataColumn AnahtarKolon = qdataset.Tables[0].Columns["Id"]; DataColumn AltAnahtar = qdataset.Tables[1].Columns["Id"]; //DataSet üzerinde yeni bir tablolar arası ilişki tanımlanır ve gridcontrol nesnesinin datasource özelliğine Primary tablo referans gösterilir. qdataset.Relations.Add("IliskiAdi", AnahtarKolon, AltAnahtar, false); gridControl1.DataSource = qdataset.Tables[0]; gridControl1.ForceInitialize(); qcon.Close();ForceInitialize metodu form load olmadan önce grid üzerinde değişiklik yapacaksanız mutlaka kullanmanız gereken bir fonksiyondur.
Daha fazla bilgi için : https://documentation.devexpress.com/#windowsforms/DevExpressXtraGridGridControl_ForceInitializetopic
Hepinize Kolay Gelsin
Yorumlar
Yorum Gönder