PDA

View Full Version : سوال: درج در دیتاگرید پس از خالی کردن



mehran788
پنج شنبه 24 اسفند 1391, 14: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, 14:52 عصر
مشکل از اینجاست که شما برای دیتا گرید یک سورس مشخص کرده اید در صورتی که باید برای خالی کردنش از این کد استفاده کنید :


dataGridViewX1.DataSource = null;

mehran788
یک شنبه 11 فروردین 1392, 15:56 عصر
مشکل از اینجاست که شما برای دیتا گرید یک سورس مشخص کرده اید در صورتی که باید برای خالی کردنش از این کد استفاده کنید :


dataGridViewX1.DataSource = null;


ولی من این کد رو امتحان کردم و دیتاگرید رو خالی نکرد

saied_hacker
یک شنبه 11 فروردین 1392, 16: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, 18: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, 20:07 عصر
سلام

نکنه منظورت اینه :لبخند: