کدهای زیر رو برای محاسبه مجموع فروش یک شرکت دارم.
public long TotalForoosh()
{
var query = (from up in _context.UserPackage_Tbl
join p in _context.Package_Tbl on up.PackageID equals p.PackageID
select new {
total = up.PackageMainPrice,
ostadid = p.UserId
});
if (userId != "-1")
{
query = query.Where(q => q.ostadid == userId);
}
return query.Select(q => q.total).DefaultIfEmpty(0).Sum();
}
اما بعد از اجرای کد خطای زیر رو میده :
Arithmetic operation resulted in an overflow.
دلیل این خطا یعنی سر ریز شدن مقدار. به عنوان مثال ممکنه شما یک متغیر از نوع byte تعریف کردید ولی مقداری بیشتر از حد مجاز داخلش قرار دادید. مثلا مقدار 1685452 رو شما نمی تونید داخل یک متغیر از نوع بایت قرار بدید.
در کوئری که نوشته شده یک متغیر به نام total دارید و یک فیلد به نام PackageMainPrice که البته مشخص نکردید که از چه نوعی هست این متغیر. احتمالا از نوع int هست. شما میتونید در حین اجرای کوئری مشخص کنید که این متغیر بیشتر از یک int فضا داشته باشه. میتونید از دستور Convert.ToInt64 استفاده کنید. کد شما به صورت زیر میشه :
public long TotalForoosh()
{
var query = (from up in _context.UserPackage_Tbl
join p in _context.Package_Tbl on up.PackageID equals p.PackageID
select new {
total = Convert.ToInt64(up.PackageMainPrice),
ostadid = p.UserId
});
if (userId != "-1")
{
query = query.Where(q => q.ostadid == userId);
}
return query.Select(q => q.total).DefaultIfEmpty(0).Sum();
}
با کد بالا مشکل شما حل میشه.
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
97
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2340
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
74
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
120
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
153
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1072
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
477
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1381
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4829
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1175
- پاسخ :
1
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
97
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2340
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
74
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2042
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
120
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
153
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1072
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
477
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
951
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1381
- پاسخ :
1
|