PDA

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());


موفق باشی
بایت بایت