View Full Version : سوال: درج در دیتاگرید پس از خالی کردن
mehran788
پنج شنبه 24 اسفند 1391, 15:28 عصر
سلام
من بعد از اینکه با این کد دیتاگرید رو خالی می کنم
DataTable dt = new DataTable();
dt.Clear();
dg.DataSource = dt;
و با این خط کد می خوام بهش یک رکورد اضافه کنم
dg.Rows.Add(code, name, address, sb, creatdata, imd, accessdata);
خطای زیر رو میده
Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.
ولی قبل از اینکه دیتاگرید رو خالی کنم بدون خطا کارش رو انجام می ده
مشکل از کجاست
ممنون
Alireza.imani
پنج شنبه 24 اسفند 1391, 15:52 عصر
مشکل از اینجاست که شما برای دیتا گرید یک سورس مشخص کرده اید در صورتی که باید برای خالی کردنش از این کد استفاده کنید :
dataGridViewX1.DataSource = null;
mehran788
یک شنبه 11 فروردین 1392, 16:56 عصر
مشکل از اینجاست که شما برای دیتا گرید یک سورس مشخص کرده اید در صورتی که باید برای خالی کردنش از این کد استفاده کنید :
dataGridViewX1.DataSource = null;
ولی من این کد رو امتحان کردم و دیتاگرید رو خالی نکرد
saied_hacker
یک شنبه 11 فروردین 1392, 17:06 عصر
شما به جای اینکه از این استفاده کنی میتونی
dg.Rows.Add(code, name, address, sb, creatdata, imd, accessdata);
از این روش استفاده کنی اول یه datatable به عنوان واسط بسازی و اسم خونه ها رو رهش بدی و بعد بعد ردیف ها Row رو بهش اضافه کنی.
DataRow tempRow;
DataTable tempdt = new DataTable();
tempdt.Columns.Add("column name", typeof(type name));
tempRow = tempdt.NewRow();
tempRow[0] = ObjectTypeValue;
tempdt.Rows.Add(tempRow);
اینجوری خیلی راحت تره و میتونی رو خونه ها هم چون توی یه دیتا تیبل هس کنترل داشته باشی و تغییر بدی.
اگر توی یه حلقه بود هر بار که میخای یه ردیف جدید row ایجاد کنی باید از
r = dt.newrow()
استفاده کنی و گرنه هی میگه این ردیف توی دیتا تیبل وجود داره
mehran788
دوشنبه 12 فروردین 1392, 19:03 عصر
شما به جای اینکه از این استفاده کنی میتونی
dg.Rows.Add(code, name, address, sb, creatdata, imd, accessdata);
از این روش استفاده کنی اول یه datatable به عنوان واسط بسازی و اسم خونه ها رو رهش بدی و بعد بعد ردیف ها Row رو بهش اضافه کنی.
DataRow tempRow;
DataTable tempdt = new DataTable();
tempdt.Columns.Add("column name", typeof(type name));
tempRow = tempdt.NewRow();
tempRow[0] = ObjectTypeValue;
tempdt.Rows.Add(tempRow);
اینجوری خیلی راحت تره و میتونی رو خونه ها هم چون توی یه دیتا تیبل هس کنترل داشته باشی و تغییر بدی.
اگر توی یه حلقه بود هر بار که میخای یه ردیف جدید row ایجاد کنی باید از
r = dt.newrow()
استفاده کنی و گرنه هی میگه این ردیف توی دیتا تیبل وجود داره
شرمنده ولی من منظورتون را کاملا درست متوجه نشدم.یعنی یه راه ساده تر وجود نداره ه ممن دیتاگریدم رو خالی کنم بدون اینکه مشکلی پیش بیاد
khokhan
دوشنبه 12 فروردین 1392, 21:07 عصر
سلام
نکنه منظورت اینه :لبخند:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.