PDA

View Full Version : سوال: معادل این دستور در لینکیو؟



hahaie
شنبه 07 مرداد 1391, 19:51 عصر
سلام دوستان.
من میخوام مانده حساب هر فرد رو بدست بیارم.دستور زیر رو نوشتم(بخونید متوجه میشید:مجموع قیمت کل تمام فاکتورهای کاربر رو از مجموع تمام پرداختهاش کم میکنه)اما اشتباه حساب میکنه نمیدونم چرا ظاهرش ک درسته.@id یه پارامتره که از ورودی دریافت میشه(کد مشتری)
گفتم با لینکیو بنویسمش ببینم چطوریه.دوستان میدونند معادل دستور زیر در لینکیو چی میشه؟نمیدونم چطوری میشه از تابع sum و کم کردن اون در لینکیو چطوری استفاده میکنند.

Select sum(tbl_pardakht.mablagh)-sum(tbl_factor.gheimatekol) from tbl_pardakht,tbl_factor where tbl_pardakht.id_moshtari=@id (tbl_pardakht.id_moshtari=@id) and tbl_factor.id_moshtari=@id

uniqueboy_ara
شنبه 07 مرداد 1391, 23:48 عصر
یه راه خیلی راحت :) ( البته نوع داده ها به صورت فرضی در نظر گرفته شده ها ) در آخر هم میتونی این 2تا عدد رو از هم کم کنی :)
int Pardakht = contex.tbl_pardakht.where(M=>M.id_moshtari==id).sum(N=>N.mablagh);
int GheymateKol = contex.tbl_factor.where(M=>M.id_moshtari==id).sum(N=>N.gheymatekol);

hahaie
سه شنبه 10 مرداد 1391, 21:45 عصر
سلام.من از دستور زیر استفاده کردم اما خطا میگیره:

Int pardakht=contex.tbl_pardakht.where(m->m.id_moshtari==convert.toInt16(id)).sum(n->n.mablagh);
توضیح اینکه فیلد id_moshtari در پایگاه داده از نوع shortint تعریف شده.پیغام خطایی ک میده اینه:

Cannot implicitly convert type 'int?' to 'int'

uniqueboy_ara
چهارشنبه 11 مرداد 1391, 00:45 صبح
خوب شما به راحتی میتونی تبدیلش کنی به int !
مثلا:
Int pardakht=convert.toInt32(contex.tbl_pardakht.where (m->m.id_moshtari==convert.toInt16(id)).sum(n->n.mablagh));