PDA

View Full Version : مبتدی: اول فیلتر بعد حاصلجمع یک سستون با عبارات لامبدا



vbiman
چهارشنبه 06 مهر 1390, 10:44 صبح
سلام
من اگه بخوام با استفاده از عبارات لامبدا کار زیر را انجام بدم چجوریه؟
جدولم بین دو تاریخ مشخص اول فیلتر بشه بعد حاصلجمع یک ستون محاسبه بشه !؟
اسم جدولم : ExInput

ID Date Price
96 1390/05/02 12000
89 1390/04/05 5000
91 1390/04/01 50000
65 1390/02/10 35000
98 1390/06/29 10000

Program.net
چهارشنبه 06 مهر 1390, 11:30 صبح
var q1 = (from t in dc.Ttests



where t.Date.CompareTo(textBox1.Text) >= 0 && t.Date.CompareTo(textBox2.Text) <= 0



select t).Sum(t=>t.Prices)

vbiman
چهارشنبه 06 مهر 1390, 11:53 صبح
این خطا را میده چه کار کنم؟
The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type.

http://up8.iranblog.com/images/2j4t8brsoklkx7o10r7h.png

Program.net
چهارشنبه 06 مهر 1390, 13:35 عصر
ببینید فیلد InputPrice رو String تعریف نکنید numeric بزارید جواب میده خودم تستسش کردم

vbiman
چهارشنبه 06 مهر 1390, 13:57 عصر
ببینید فیلد InputPrice رو String تعریف نکنید numeric بزارید جواب میده خودم تستسش کردم
فیلد InputPrice به numeric تبدیل کردم ولی باز هم همون پیغام رو میده اینم کدمه:
var q = (from x in db.ExInputs
where x.InputDate.CompareTo(label3.Text) >= 0 && x.InputDate.CompareTo(lbDateNow.Text) <= 0
select x).Sum(x =>(Convert.ToInt32 (x.InputPrice)));
lbJari.Text = q.ToString();

Program.net
چهارشنبه 06 مهر 1390, 14:25 عصر
فیلد InputPrice توی اون تاریخی که فیلتر میکنی پر هست؟
ببین اول فیلترش کن بین تاریخات بعد trace کن ببین query چی بر میگردونه ؟

vbiman
چهارشنبه 06 مهر 1390, 14:39 عصر
تاریخ ها رو درست در میاره اما به این یک تکه گیر میده :
select x).Sum(t=>t.InputPrice);
میگه همش نمیدونم باید به دسیمال تبدیل بشه یه همچین چیزی!!!!!!
خودم کاری رو که گفته بودی انجام دادم توی یک برنامه کوچکتر درست کار می کنه اما تو این برنامه نمیدونم چرا گیر میده؟؟؟؟؟؟؟؟؟

vbiman
پنج شنبه 07 مهر 1390, 12:01 عصر
من برنامه ام گذاشتم ببینید مشکل از کجاست دانلود کردید به فرم Report برید اونجا جایی که مشکل داره رو مشخص کردم .
http://up4.iranblog.com/images/9lwoe130et2twplqmf3i.rar

Program.net
شنبه 09 مهر 1390, 09:30 صبح
برنامتونو چک کردم توی جدولتون داده ای توی بازه زمانی که شما مشخص میکردید وجود نداشت تاریخاتونو چک کنید جواب میده مشکلی هم نداره