PDA

View Full Version : خالی کردن Datagrid



sajjadrad
سه شنبه 09 فروردین 1390, 11:43 صبح
سلام دوستان
خسته نباشید

من یه برنامه طراحی کردم که در قسمت جستجو میخوام بعد از کلیک روی جستجوی جدید datagrid که اطلاعات جستجوی قبلی رو داره خالی بشه.از دستور :

dataGridView1.Rows.Clear();
استفاده کردم اما خطا داد که نمیتونه این لیست رو پاک کنه...
دیتا سورس رو هم تغییر دادم اما مشکل اینه سربرگ و dataproperty همه پاک میشن و در درخواست بعدی جستجو همه تنظیمات از دست میره....

چطور میشه یه دیتاگرید رو خالی کرد؟

ehsanara
سه شنبه 09 فروردین 1390, 12:29 عصر
جایی که میخوای DatGrid خالی شه بنویس
dataGridView1.DataSource = null;

sajjadrad
سه شنبه 09 فروردین 1390, 12:33 عصر
مرسی
اما این کد کل column های datagrid رو پاک میکنه و تو جستجوی بعدی سربرگ ها و .. پاک میشن

ehsanara
سه شنبه 09 فروردین 1390, 12:38 عصر
Header رو تو خود Gridساختی یا از DataSource میگیری؟

shadi khanum
سه شنبه 09 فروردین 1390, 13:06 عصر
اگه columnهای دیتاگرید رو توی مد Design ساختین ، با null کردن Datasource نباید پاک بشن ولی اگه خودتون واسه گرید column نساختین و فقط datasource رو به گرید میدین و بر اساس datasource ستون های گرید ساخته میشه با null کردن datasource ستون ها پاک میشه ولی خوب وقتی نتیجه جستجوی جدید رو بش میدین دوباره ستونها ساخته میشه. احتمالا مشکل چیز دیگه است.. اگه بتونی کدت رو بذاری بهتر میشه کمک کرد

sajjadrad
سه شنبه 09 فروردین 1390, 15:09 عصر
column ها رو از طریق گزینه Edit column خود Datagrid ساختم...
کدوم کد ها رو نیاز دارید تا بذارم؟کد های ست کردن دیتاسورس موقع ارتباط با بانک؟

ehsanara
سه شنبه 09 فروردین 1390, 15:25 عصر
column ها رو از طریق گزینه Edit column خود Datagrid ساختم...
کدوم کد ها رو نیاز دارید تا بذارم؟کد های ست کردن دیتاسورس موقع ارتباط با بانک؟

در اینصورت با Null کردن DataSource نباید Header ها پاک شن
کدهایی که داری رو بزار

sajjadrad
سه شنبه 09 فروردین 1390, 19:10 عصر
con2.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = con2;
da.SelectCommand.CommandType = CommandType.Text;
da.SelectCommand.CommandText = "select ID,name from users where age>18";
DataTable dt = new DataTable();
da.Fill(dt);
con2.Close();
DataView view1 = new DataView(dt);
CurrencyManager cur;
cur = (CurrencyManager)(this.BindingContext[view1]);

if (cur.Count==0)
{
dt.Clear();
dataGridView1.DataSource = dt;
MessageBox.Show("not found", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
dataGridView1.DataSource = dt;

}

Directx
سه شنبه 09 فروردین 1390, 19:16 عصر
اونوقت column هات رو چطوری بایند کردی؟

sajjadrad
سه شنبه 09 فروردین 1390, 19:43 عصر
اونوقت column هات رو چطوری بایند کردی؟
خب با استفاده از خود شی datdagridviewr ... با کلیک راست کردن روش و اضافه کردم column ها از طریق گزینه edit column...

ehsanara
سه شنبه 09 فروردین 1390, 21:53 عصر
ببین اینطوری جواب میده

SqlDataAdapter oda = new SqlDataAdapter("Select ID,Name From Users Where Age > 18", con2);
cnn.Open();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
oda.Fill(ds, "Users");
dt = ds.Tables["Users"];
cnn.Close();

ehsanara
سه شنبه 09 فروردین 1390, 22:07 عصر
فراموش کردم بگم که Headerهای گرید ویو رو حذف کن

sajjadrad
سه شنبه 09 فروردین 1390, 23:59 عصر
مرسی ..ببخشید راهی دیگه ای نداره؟آخه من خیلی کد دارم سخته که همه رو تغییر بدم...:ناراحت:

ehsanara
چهارشنبه 10 فروردین 1390, 00:21 صبح
مرسی ..ببخشید راهی دیگه ای نداره؟آخه من خیلی کد دارم سخته که همه رو تغییر بدم...:ناراحت:

روشی که خودت نوشتی رو به این شکل تغییر بده
تو روش خودت فقط کافیه این 3خط رو تغییر بدی

DataSet ds = new DataSet();
oda.Fill(ds, "Users");
dt = ds.Tables["Users"];

sajjadrad
چهارشنبه 10 فروردین 1390, 00:59 صبح
الان اینجوری header text وجود نداره بجاش اسم column جدول میاد که

ehsanara
چهارشنبه 10 فروردین 1390, 01:09 صبح
آره
میتونی تو Select خودت برا اون Column اسم بزاری
Select ID AS 'شماره کاربر',Name AS 'نام کاربر'
یا هر اسمی که دوست داری
اینطوری مشکلت حل میشه؟