View Full Version : مبتدی: جمع کردن یک ستون اردیتا گرید
syasamboo3
شنبه 03 تیر 1391, 01:06 صبح
سلام دوستان.من واسه جمع کردن یه ستون از دیتاگرید از کد زیر استفاده میکنم.ولی اگه یکی از رکوردها خالی باشه جمع اطلاعات رو نمایش نمیده. میشه کمک کنید
int a = 0;
for (int i = 0; i < grd.Rows.Count - 1; i++)
{
a = a + Int32.Parse(grd.Rows[i].Cells[3].Value.ToString());
}
label2.Text = a.ToString();
saeedhushmand
شنبه 03 تیر 1391, 01:37 صبح
دوست عزیز تو می خوای جمع یک ستون که int هست رو بدست بیاری و مسلما وقتی یکی از رکودها خالی باشه ارور می ده چون int نیست که جمع کنه تو 2 کار برای رفع مشکلت می تونی بکنی
1- دستورتو توی try بنویسی (البته با این کار دیگه ستون جمع بسته نمی شه)
2-می تونی قبل از انجام این عمل یک دستور بنویسی که هر رکودی که خالی هست جاش صفر بذاره بعد جمع بزنه...
uniqueboy_ara
شنبه 03 تیر 1391, 02:45 صبح
به جای استفاده از int.pars از int.tryparse استفاده کن
veniz2008
شنبه 03 تیر 1391, 03:13 صبح
سلام،علاوه بر دستورات بالا میتونی از دستور sql زیر هم استفاده کنی:
SELECT ISNULL(SUM(money),0) FROM Table1
money نام ستونی از جدولت هست که میخوای جمع بزنی.
تابع ISNULL : اگر مقدار فیلد موجود (از آخرین رکورد بازیابی شده دردسترس) برابر Null بود مقدار جایگزین که در این مثال 0 درنظرگرفته شده است را اثر می ده .
راستی شرطی که در حلقه for هم گذاشتی اشتباهه(در واقع رکورد آخر بررسی نمیشه، یعنی اگه 4 تا رکورد داشته باشی مقدار count = 4 هست ،حالا شما تو شرط گفتی کوچکتر از 3 باشه(یعنی رکوردهای 0 و 1 و 2 )در صورتیکه اندیس رکوردهای شما 0 ، 1، 2 و 3 هستن،علامت مساوی رو هم باید به کوچکتر اضافه کنی یا اینکه 1- رو برداری.
موفق باشی.
Y_Safaiee
شنبه 03 تیر 1391, 06:28 صبح
با سلام خدمت شما دوست گرامی
int sum=0;
for (int a = 0; a < grid.Rows.Count - 1; a++)
{
if (grid.Rows[a].Cells[1].Value != null) sum += (int)grid.Rows[a].Cells[1].Value;
}
MessageBox.Show(sum.ToString());
موفق باشی
بایت بایت
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.