PDA

View Full Version : اضافه کردن جمع به آخر دیتا گرید ویو



mosavi8002
چهارشنبه 27 اسفند 1393, 18:02 عصر
سلام دوستان
من برنامه ای نوشتم ساده .که طرف میاد نام کالا با قیمت کالا رو وارد میکنه .وقتی وارد میکنه و کلیک میکنه روی دگمه افزودن اضافه میشه و در پایین دیتا گرید ویو گذاشتم که میره دیتا بیس ذخیره میشه و در این دیتا گرید ویو نمایش داده میشه .حالا ستونی که قیمت ها قرار داره ایا راهی هست که به طور آتوماتیک به پایین دیتا گرید ویو چیزی بذارم که وقتی کاربر قیمت رو وارد میکنه قیمت های اون ستون رو جمع کنه و پایین نشون بده .عین یه فاکتور که اخرش مثلا میزنه جمع کن.اونجوری میخوام باشه
ممنون میشم راهنمایی کنید ...با تشکر

mortaza94
چهارشنبه 27 اسفند 1393, 18:22 عصر
double sum_bd,sum_bs ;
sum_bd = sum_bs = 0;
for (int i = 0; i < dataGridViewX1.Rows.Count; ++i)
{
sum_bd += Convert.ToDouble(dataGridViewX1.Rows[i].Cells[4].Value);

}

dataGridViewX1.Rows.Add("", "", "", " مجموع : ", sum_bd);

mosavi8002
چهارشنبه 27 اسفند 1393, 19:09 عصر
double sum_bd,sum_bs ;
sum_bd = sum_bs = 0;
for (int i = 0; i < dataGridViewX1.Rows.Count; ++i)
{
sum_bd += Convert.ToDouble(dataGridViewX1.Rows[i].Cells[4].Value);

}

dataGridViewX1.Rows.Add("", "", "", " مجموع : ", sum_bd);



دوست عزیز این ارور رو میده


Rows cannot be programmatiacally added to the datagridviews rows coolection when the control is data-bound.



دلیل این ارور چیه؟
ممنونم

mrali.jalali
چهارشنبه 27 اسفند 1393, 22:22 عصر
دوست عزیز این ارور رو میده


Rows cannot be programmatiacally added to the datagridviews rows coolection when the control is data-bound.





دلیل این ارور چیه؟
ممنونم

این ارور به این خاطره گرید ویو به دیتابیس بایند شده

mosavi8002
پنج شنبه 28 اسفند 1393, 07:47 صبح
این ارور به این خاطره گرید ویو به دیتابیس بایند شده

حالا چیکار کنم؟که جواب بگیرم؟
ممنونم

s_mehdi
پنج شنبه 28 اسفند 1393, 08:08 صبح
با سلام به دوست عزیز
این خطا به خاطر اینه که شما به datasource دیتا گرید ویو یک مقدار به عنوان منبع داده دادید. اگر این منبع داده یک DataTable باشه می تونید مقدار جمع رو به آخر DataTable اضافه کنید و این مقدار در DataGridView شما هم بروز میشه.
من فرض می کنم نام DataTable ای که به گرید ویو دادید tableTest هست.



double sum_bd,sum_bs ;
sum_bd = sum_bs = 0;
for (int i = 0; i < dataGridViewX1.Rows.Count; ++i)
{
sum_bd += Convert.ToDouble(dataGridViewX1.Rows[i].Cells[4].Value);
}
DataRow row = testTable.NewRow();
row["youtColumnName"] = sum_bd;
tableTest.Rows.Add(row)



البته باید یادت باشه که قبل از اضافه کردن این ردیف باید ردیف قبلی که مقدار sum رو در اون قرار داده بودی پاک کنی .

موفق باشید

mosavi8002
پنج شنبه 28 اسفند 1393, 21:25 عصر
دوست عزیز من از دیتا تیبیل استفاده نکردم .از دیستا بیس select کردم و در گرید ویو نشون دادم .دیگه در data table نریختما
به خاطر این هنوز موفق نشدم مشکل رو حل کنم