PDA

View Full Version : سوال: جمع ستون یک دیتاگرید در سی شارپ



Pouyan2010
دوشنبه 20 دی 1389, 13:38 عصر
سلام.
کسی میتونه به من کمک کنه!
من می خوام محتویات یک ستون عددی در دیتا گرید در سی شارپ را جمع بزنم دستوری برای این کار از SQl یا........ کسی داره به من بده.
مرسی

quiet_programmer
دوشنبه 20 دی 1389, 14:01 عصر
سلام به همه.
درجواب باید بگم که اگه اطلاعات گرید از بانک اطلاعاتی لود میشه میتونی با دستوری شبیه به کد زیر مجموع رو حساب کنی.



SELECT SUM(Cost) AS Expr1
FROM TblLog
WHERE (1 = 1)


که Cost اسم همون فیلدیه که میخوای مجموعش رو حساب کنی و TblLog هم اسم جدولته.
Expr1 هم نام فیلدی که قراره حاصل تو اون قرار بگیره میتونی از هر اسمه دیگه ای هم بجاش استفاده کنی
تو قسمت WHERE هم میتونی شرط رو اعمال کنی.
ولی به نظر من اگه گرید پره کار بیخودیه دوباره واکشی اطلاعات از بانک رو داشته باشیم و باید حساب کردن مجموع رو تو قسمت کد انجام داد که اگه خواستی بگو تا کدش رو برات بنویسم.

mmd2009
دوشنبه 20 دی 1389, 16:09 عصر
با سلام.

ت وخود دیتاگرید ویو هم میتونی جمع بزنی مثلا اینطوری :



int sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
}
this.Text = sum.ToString();


یا اینطوری با حلقه foreach :



int sum = new int();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
sum += (int)row.Cells[0].Value;
}

this.Text = sum.ToString();


یا مثلا استفاده از linq :



var query = dataGridView1.Rows.Cast<DataGridViewRow>()
.AsEnumerable()
.Sum(sumCell => Convert.ToInt32((sumCell.Cells[0].Value.ToString())));
this.Text = query.ToString();


موفق باشید...

hadi-z
دوشنبه 20 دی 1389, 17:35 عصر
سلام
ضمن تایید جواب mmd2009 (http://barnamenevis.org/member.php?115786-mmd2009) ، میتونی جواب سوالتو اینجا به همراه یک نمونه برنامه کوچک ببینی:

http://www.dotnetspider.com/resources/27629-Calculating-The-Sum-values-from-DataGridView.aspx

JODESA
جمعه 17 شهریور 1391, 16:02 عصر
سلام من کد بالا را امتحان کردم از i خطا می گیرد چه کار کنم