PDA

View Full Version : سوال: مشکل با دیتاست



aftabeshargh
پنج شنبه 03 فروردین 1391, 20:56 عصر
سلام
یه دیتاست دارم که 3 تا جدول (dtch,dtjo,dtarm)مجزا داره " میخوام با پر کردن این جداول از دیتابیس sql " محتواشون رو تو کریستال نشون بدم " اما نمیدونم چرا وقتی تو برنامه محتوایی برا dtarm نیست (یعنی تصویر مربوط به آرم در دیتابیس نیست که جدول مربوطش در دیتاست پر بشه) موقع انجام پرینت و نمایش کریستال ، بقیه اطلاعات مربوط به dtjo,dtch هم در کریستال نمیاره ؟!!!!!!!!!!!! از این روش تو فرم های دیگه استفاده کردم جواب داده اما نمیدونم اینجا گیرش چیه ؟ (لینکی بین جدول های دیتاست و تو کریستال ندارم)


cmd.CommandText = ("select*from tbl_ch where vch like N'%" + txtgir.Text + "%'")
cmd2.CommandText = ("select * from tbl_jo")
cmd3.CommandText = ("select * from tbl_ar")
adp.SelectCommand = cmd
adp2.SelectCommand = cmd2
adp3.SelectCommand = cmd3
adp.Fill(ds, "dtch")
adp2.Fill(ds, "dtjo")
adp3.Fill(ds, "dtarm")

Dim rp As New rpch
rp.SetDataSource(ds)
fpch.CrystalReportViewer1.ReportSource = rp

cn.Close()

fpch.ShowDialog()

aftabeshargh
پنج شنبه 03 فروردین 1391, 23:26 عصر
دوستان منتظر نظرات شما هستم:بوس:

فرید نجفلو
پنج شنبه 03 فروردین 1391, 23:37 عصر
این مشکل فقط وقتی پیش میاد که عکس نباشه یا واسه همشون اینطوری میشه؟
قبل از هر چیز سه تا گرید موقت به فرم اضاف کن ببین اطلاعات دیتا ست ها درستن یا نه؟
گزارشت با فرم قبلی چه تغییرتی داشته(استفاده از موارد جدید و ...)؟

aftabeshargh
پنج شنبه 03 فروردین 1391, 23:55 عصر
تو دیتاستم 3 تا جدول دارم dtarm که عکس آرم رو از دیتابیس میاره برا گوشه فرم جای آرم (طبق تصویر زیر) و جدول dtjo که عنوان (مثلا نام کانون ) رو میگیره و میفرسته تو کریستال و جدول dtch که داده های جدول رو میفرسته تو کریستال
کریستالم طبق دستورات پست قبل از دیتاست پر میشه و به درستی کار میکنه جز وقتی که عکس آرم تو دیتابیس نداشته باشم و دیتاست (جدول dtarm) خالی باشه اونوقت دیگه اصلا داده های سایر جدول ها هم به کریستال فرستاده نمیشه انگار دیتاست چیزی نداره !

فرید نجفلو
جمعه 04 فروردین 1391, 00:16 صبح
به کدت این سه خط رو اضافه کن ببین چی میشه بگو


adp3.Fill(ds, "dtarm")
If ds.Tables("dtarm").Rows.Count = 0 Then
ds.Tables("dtarm").Rows.Add({Nothing})
End If

aftabeshargh
جمعه 04 فروردین 1391, 00:27 صبح
این خطا رو میگیره

فرید نجفلو
جمعه 04 فروردین 1391, 00:37 صبح
تو هم یه کمکی بکن دیگه می دونم مبتدی نیستی و داری تنبلی می کنی!:قهقهه:
یه جفت آکولاد که این حرفا رو نداره!!:چشمک:
(پست اصلی اصلاح شد)

aftabeshargh
جمعه 04 فروردین 1391, 00:46 صبح
ممنون از راهنماییت
ولی مشکلش با آکولاد حل نشد و به خود آکلاد گیر داد برا همین از شما پرسیدم

aftabeshargh
جمعه 04 فروردین 1391, 01:13 صبح
راه حل دیگه ای به ذهنتون نمیرسه ؟

aftabeshargh
جمعه 04 فروردین 1391, 11:12 صبح
همچنان منتظر یاری سبزتان هستم:گریه:

aftabeshargh
جمعه 04 فروردین 1391, 12:55 عصر
هیچ راهی نداره ؟

ROSTAM2
جمعه 04 فروردین 1391, 14:07 عصر
اگه گیرت تو این کده

adp3.Fill(ds, "dtarm")

If ds.Tables("dtarm").Rows.Count = 0 Then

ds.Tables("dtarm").Rows.Add({Nothing})

End If
که
Dim Val as Objetc() = {}
adp3.Fill(ds, "dtarm")

If ds.Tables("dtarm").Rows.Count = 0 Then

ds.Tables("dtarm").Rows.Add(Val)

End If

aftabeshargh
جمعه 04 فروردین 1391, 14:21 عصر
آره دقیقا :بوس:
ممنون از لطفتون

فرید نجفلو
جمعه 04 فروردین 1391, 14:47 عصر
راه حل دیگه ای به ذهنتون نمیرسه ؟
ولی من با آکولاد ها مشکلی ندارم به احتمال زیاد از نسخه VS شما باشه که 2008 است!
شما می تونید یک آرایه تعریف کنید و از اون استفاده کنید:



adp3.Fill(ds, "dtarm")
If ds.Tables("dtarm").Rows.Count = 0 Then
Dim EptyRow(0)
EptyRow(0)=Nothing
ds.Tables("dtarm").Rows.Add(EptyRow)
End If



تست کنید نتیجه رو بگید

یا بهتر از اون بنویسید:

adp3.Fill(ds, "dtarm")
If ds.Tables("dtarm").Rows.Count = 0 Then
Dim NeRow = ds.Tables("dtarm").NewRow
ds.Tables("dtarm").Rows.Add(NeRow)
End If

aftabeshargh
جمعه 04 فروردین 1391, 14:55 عصر
ولی من با آکولاد ها مشکلی ندارم به احتمال زیاد از نسخه VS شما باشه که 2008 است!
شما می تونید یک آرایه تعریف کنید و از اون استفاده کنید:



adp3.Fill(ds, "dtarm")
If ds.Tables("dtarm").Rows.Count = 0 Then
Dim EptyRow(0)
EptyRow(0)=Nothing
ds.Tables("dtarm").Rows.Add(EptyRow)
End If



تست کنید نتیجه رو بگید

یا بهتر از اون بنویسید:

adp3.Fill(ds, "dtarm")
If ds.Tables("dtarm").Rows.Count = 0 Then
Dim NeRow = ds.Tables("dtarm").NewRow
ds.Tables("dtarm").Rows.Add(NeRow)
End If


آره فریدجان اینم جواب میده " ممنون
در کل باید نزاریم rows.count=0 باشه