xml dosyalarının datagridview de göstrilmesi

C# (C Sharp) veya Java ile ilgili konuları buraya yazabilirsiniz.
Cevapla
yasinturk1907
Üye
Mesajlar: 2
Kayıt: 24 Nis 2009 10:10

xml dosyalarının datagridview de göstrilmesi

Mesaj gönderen yasinturk1907 »

Arkadaşlar elimde birden fazla tablo var ve bu tablolar bana xml'e dönüşerek geliyor..
Benim yapmam gereken içlerindeki id'lere göre diğer xml dosyalarından veriyi filtreleyip datagridview içerisinde göstermek istiyorum.

XmlDataDocument xmlDatadoc = new XmlDataDocument();
xmlDatadoc.DataSet.ReadXml("stock/list.xml");
DataSet ds = new DataSet("Stock");
ds = xmlDatadoc.DataSet;
dataGridView1.DataSource = ds.DefaultViewManager;
dataGridView1.DataMember = "item";

bu kodlar ile tek bir xml'in içerisindeki bütün verileri datagridview içerisine atabiliyorum. Ancak benim istediğim örneğin ;
bu list.xml içerisinde bir car_id var bu id'den car.xml içerisindeki id ile eşleştirp onu datagrid viewe atmak ve onun yanına color.xml içerisinden ilişkilendirip vari eklemek bunun gibi 4 5 tane xml var elimde. ve daha da artabilir...

Yardımcı olabilirseniz sevinirim..
yasinturk1907
Üye
Mesajlar: 2
Kayıt: 24 Nis 2009 10:10

Re: xml dosyalarının datagridview de göstrilmesi

Mesaj gönderen yasinturk1907 »

Arkadaşlar yardım edebilecek kimse yok mu _?
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1526
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Re: xml dosyalarının datagridview de göstrilmesi

Mesaj gönderen lazio »

xml de filter uygulayabiliyorssun ama join i hiç durmadım görmedim.
şöyle bişey yapabilirsin, gridview da göstermek istediğin xml yapısını generate edip elindeki xml i gridview a bind edebilirsin.
yani x xml i ile y xml inin istediğin nodelarını z xml i üzerinde oluşturup z yi gridview a bind et.
Resim

..::|YeşilMavi|::..
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Re: xml dosyalarının datagridview de göstrilmesi

Mesaj gönderen unalaygun »

Bu Bahsetmiş olduğun elinde bulunan tüm xml dosyalarını bir datasete tablelar şeklinde doldursun.
Ondan sonra tablolar arasında ilişki kurabilirsin. İstediğin fieldlar arasında yani liste tablosundaki car_id alanı ile car tablosundaki id yi ilişkilendirebilirsin.
c# dataset'i veritabanı tabloları da tablelar olarak düşünür.
Dolayısıyla ilişkileri vurdan da tanımlayabilirsin.
Örnek olarak

myAdap.Fill(dSet, "DERS_T");
DataRelation dRelation = new DataRelation("cevapDersRel", dSet.Tables["DERS_T"].Columns["ders_kod"], dSet.Tables["CEVAP_ANAHTARI"].Columns"ders_kod"], false);
dSet.Relations.Add(dRelation);
dSet.Tables["CEVAP_ANAHTARI"].Columns.Add("DersAd", typeof(string), "Parent(cevapDersRel).dersad");

Yukardaki dSet =Senin Datasetin
DERS_T tablosu ile CEVAP_ANAHTARI tablosu arasında bir ilişki kuruyorum . ilişkim Ders_kod alanı ile kuruyorum.


Peki bu ilişkiyi kurdum x numaralı arabayı seçtim nasıl gelecek uygun araba dersende abicim.
Bir comboya doldurduğun araba listesi olduğunu varsayarsak


combobox'ın şöyle bir eventi var cbDersler_SelectionChangeCommitted oraya aşağıdaki gibi bir kodlada bunu sağlayabilirsin.
//Hepsini göster secili ise
if (Convert.ToInt16((sender as ComboBox).SelectedValue) != 0)
{
if(rowFilter != "")
{
(dgCevapAnahtari.DataSource as DataTable).DefaultView.RowFilter = rowFilter + " and ders_kod='" + (sender as ComboBox).SelectedValue.ToString() + "'";
}
else
{
(dgCevapAnahtari.DataSource as DataTable).DefaultView.RowFilter = rowFilter + " ders_kod='" + (sender as ComboBox).SelectedValue.ToString() + "'";
}
(dgCevapAnahtari.DataSource as DataTable).DefaultView.Sort = "snvgrup_kod,ktur,soruno";
}
else
{
(dgCevapAnahtari.DataSource as DataTable).DefaultView.RowFilter = rowFilter;
(dgCevapAnahtari.DataSource as DataTable).DefaultView.Sort = "snvgrup_kod,ktur,soruno";
}

bunlar benim daha önceden yazmış olduğum uygulamadaki kodlarım. Umrım işini görür
kolay gelsin.
derviş
Cevapla