درج در دیتاگرید پس از خالی کردن
سلام
من بعد از اینکه با این کد دیتاگرید رو خالی می کنم
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.
ولی قبل از اینکه دیتاگرید رو خالی کنم بدون خطا کارش رو انجام می ده
مشکل از کجاست
ممنون
نقل قول: درج در دیتاگرید پس از خالی کردن
مشکل از اینجاست که شما برای دیتا گرید یک سورس مشخص کرده اید در صورتی که باید برای خالی کردنش از این کد استفاده کنید :
dataGridViewX1.DataSource = null;
نقل قول: درج در دیتاگرید پس از خالی کردن
نقل قول:
نوشته شده توسط
Alireza.imani
مشکل از اینجاست که شما برای دیتا گرید یک سورس مشخص کرده اید در صورتی که باید برای خالی کردنش از این کد استفاده کنید :
dataGridViewX1.DataSource = null;
ولی من این کد رو امتحان کردم و دیتاگرید رو خالی نکرد
نقل قول: درج در دیتاگرید پس از خالی کردن
شما به جای اینکه از این استفاده کنی میتونی
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()
استفاده کنی و گرنه هی میگه این ردیف توی دیتا تیبل وجود داره
نقل قول: درج در دیتاگرید پس از خالی کردن
نقل قول:
نوشته شده توسط
saied_hacker
شما به جای اینکه از این استفاده کنی میتونی
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()
استفاده کنی و گرنه هی میگه این ردیف توی دیتا تیبل وجود داره
شرمنده ولی من منظورتون را کاملا درست متوجه نشدم.یعنی یه راه ساده تر وجود نداره ه ممن دیتاگریدم رو خالی کنم بدون اینکه مشکلی پیش بیاد
1 ضمیمه
نقل قول: درج در دیتاگرید پس از خالی کردن
سلام
نکنه منظورت اینه :لبخند: