İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# datarow, dataset, crystal report

serious13.02.20102 cevap5.382 görüntüleme
#1
arkadaşlar crystal reportta veri tabanından veri çekiyorum. Ancak raporda görünmesini istediğim ama veri tabanında bulunmaya dinamik veri varsa eğer, Mesela formda label in texti.ben Formdaki ID değişkenini göndermk istiyorum. Ben bunu almak için datarow nesnesi tanımladım. tablomun ismi tahsilat. Rapor sayfamdaki field name makbuzID.
DataRow dr = mydataset.Tables["tahsilat"].NewRow();
dr["makbuzID"] = Form1.ID;
mydataset.Tables["tahsilat"].Rows.Add(dr);
dataowu oluşturdum. sonra da veri tabanımdakileri alıp datatable a atmıştım onları alıp datasete eklemek istiyorum. ekliyo da sorun yok ama benim rapor sayfasındaki şablonumun aynısını boş gösteriyo hemen altına dolusunu yazıyo. Belli ki benim ID için tanımladığım row u diğer parametreleri boş olark gösteriyo hemen altına da datatable dan alıp datasete attıklarımı gösteriyo. nedendir sizce?? Bi fikri olan var mı??
datatable i datasete atışım da şöyle
Burası ID için di
data mydataset = new data();
DataRow dr = mydataset.Tables["tahsilat"].NewRow();
dr["makbuzID"] = Form1.ID;
mydataset.Tables["tahsilat"].Rows.Add(dr);
devamında datatable dan böyle ve yanlış alıyorum galiba:(
for (int i = 0; i < mytable.Rows.Count; i++)
{
mydataset.tahsilat.AddtahsilatRow(
Convert.ToString(mytable.Rows["borcluadsoyad"]),
Convert.ToString(mytable.Rows["banka"]),
Convert.ToString(mytable.Rows["icradairesi"]),
Convert.ToString(mytable.Rows["icradosyano"]),
Convert.ToString(mytable.Rows["urunnumarasi"]),
Convert.ToInt32(mytable.Rows["yatirilanmiktar"]),
Convert.ToString(mytable.Rows["tarih"]),
Convert.ToString(mytable.Rows["tahsileden"]));
}
bunu ilk kez kullanıyorum. Bi yerlerde yanlışdüşünüyorum ama???

bişey daha sormak istiyorum bunu bulursam çözücek sorunumu. Veri tabanımda tablomda otomatik artan ID alanım var. Ama bu tablo için raporlama sayfasında AddtahsilatRow() fonksiyonu FatrudaIDden hemen sonrakileri parametre alıyo. FaturaID için datatable daki değerimi oluşturduğum datasete atamıyorum haliyle. :( aslında atıyorum ama o table daki başka bi parametreden vazgeçmem gerek yoksa overloaded oluyo.
Cevaplar
#2
Otomatik ID atadığı için işlemler cidden zorlaşıyor, başıma çok geldi. O yüzden şöyle bir şey yap, güvenilir bir şey en azından :) Tablonun veri tipini Sayı olarak belirle, yeni kayıt yaparken programdan da tablonun maksimum olan yani en yüksek değere sahip olan id 'yi al.

Mesela
id
101
102
103 gibi ID var tabloda, "select max(id) from tablo" deyip en yüksek değeri al, değişkene at ve sayısını 1 arttır :) Ben hep öyle yapıyorum, en azından daha pratik geliyor bana :) Sorun yaşama gibi bir derdin de yok :)
serious Konuyu açan
#3
sağol cevabın için kardeş:) Ben de karıştıra karıştıra çözdüm sorunu.:) Anlatayım bu sorunla karşılaşan arkadaşlar öyle halletsinler:):) Benim sorunum rapor sayfasına atmaktaydı. Rapor için kullandığım datasete geldim oraya verileri çektiğim tablom vardı. Geldim table a en üste insert column yaptım name ve source u da verdim ismini makNo mesela. Sonra geldim AddtahsilatRow a ne göriyim:):) Eklemiş makno yu parametre olarak. Oraya artık ne isterseniz atayabilirsiniz. Yalnız bunu yaparken türüne dikkat etmeyi unutmayın benim gibi:)veri tabanınızda neyse veya formdan dinamik olarak oraya atacağınız neyse ona göre belirleyin:):)
İnş açıklayıcı olmuştur:):)

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.