PDA

View Full Version : پاک کردن datagrid



jafari_m246
چهارشنبه 24 مرداد 1386, 16:57 عصر
سلام

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

از چه کدی و در کجای برنامه استفاده کنم. تا اطلاعات را ادامه اطلاعات قبلی نمایش ندهد.

ممنون

PC2st
چهارشنبه 24 مرداد 1386, 18:10 عصر
با هر بار کلیک کردن اطلاعات قبلی را پاک کنه واطلاعات جدید را در datagrid نمایش بدهد.



this.dataGridView1.Rows.Clear();

jafari_m246
چهارشنبه 31 مرداد 1386, 04:42 صبح
خیلی ممنون ولی من از datagrid استفاده می کنم نه ازdatagridview

ممکنه کد دیتا گرید را بهم بگید.یا طریقه استفاده از datagridviwe را واینکه اینها اصلا چه تفاوتی دارند ودر کجا ها استفاده میشوند

egoldashraf
چهارشنبه 31 مرداد 1386, 08:50 صبح
اگه از نسخه 2005 استفاده میکنید امکان استفاده از DataGridView رو دارید

PC2st
چهارشنبه 31 مرداد 1386, 11:18 صبح
ممکنه کد دیتا گرید را بهم بگید.یا طریقه استفاده از datagridviwe را واینکه اینها اصلا چه تفاوتی دارند ودر کجا ها استفاده میشوند
تفاوتشون در اینه که دیتاگریدویو نسخه کامل شده دیتاگرید هست و امکانات بیشتری هم داره و البته راحت تر هم استفاده میشه.

برای دیتاگرید، اگر دیتاگرید رو به یک دیتاست وصل کرده باشید:


ds.Tables["TableName"].Rows.Clear();

اگر دیتاگریدویو هم به یک منبع داده مثل دیتاست وصل شده باشه، مثل کد فوق عمل میکنیم.
TableName: نام جدولی در دیتاست که توسط متد Fill از data adapter پر شده است.

hdv212
چهارشنبه 31 مرداد 1386, 14:48 عصر
از این راه هم میتونید استفاده کنید :

this.dataGrid1.DataSource = null;
بعد دوباره دیتاسورس گریدتونو به دیتاست، بایند کنید.

jafari_m246
پنج شنبه 01 شهریور 1386, 11:39 صبح
this.dataGrid1.DataSource = null;

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



this.dataGridView1.Rows.Clear();

برای این کد هم پیغام میدهد که
can not clear this list

و اما کد آخر


ds.Tables["TableName"].Rows.Clear();

این کد هم مشکل را حل نکرد چونکه header دیتا گرید را پاک نمی کنه .

مثلا اگر برای بار اول اطلاعات اساتید را نمایش میدهد در قسمت header ،
نام استاد، نام خانوادگی استاد قرار دارد
برای بار دوم که میخواهم اطلاعات شهر را نمایش بدهم نام استاد و نام خانوادگی استاد هم در دیتاگرید وجود دارد


اگر مشکل کد دوم را برایم بگید فکر میکنم بیشتر بدردم بخورد

PC2st
پنج شنبه 01 شهریور 1386, 12:17 عصر
برای این کد هم پیغام میدهد که
can not clear this list
چونکه DataGridView رو به یک منبع متصل کردید...


برای پاک کردن Header:


ds.Tables["TableName"].Columns.Clear();


با پاک کردن اطلاعات منبع، میدونید که باید همه اطلاعات رو از اول پر کنید!

hdv212
پنج شنبه 01 شهریور 1386, 12:53 عصر
این کد که اطلاعات قبلی را پاک نمی کنه دیتا سورس نال می شه ولی اطلاعات دیتاست هنوز سر جاشونند.
خب مگه نمیخواستی اطلاعات دیتاگریدت رو پاک کنی ؟ اینم یه راهشه، ولی اگه میخوای دیتاست رو پاکنی از ترکیب این کدها میتونی استفاده کنی :

this.dataGrid1.DataSource = null;
ds.Tables["TableName"].Rows.Clear();

jafari_m246
پنج شنبه 01 شهریور 1386, 16:45 عصر
جواب نمیدهند این کدها:گریه::گریه::گریه:



با پاک کردن اطلاعات منبع، میدونید که باید همه اطلاعات رو از اول پر کنید!


ممکنه بیشتر توضیح بدهید دیگه چی را باید از اول پر کنم تا جواب بدهد
اگر روی دیتا گرید کلیک کنیم اطلاعات رانشان میدهد و مشکلی ندارد
من از این کد استفاده میکنم ولی جواب نمیدهد


privatevoid button1_Click(object sender, EventArgs e)
{

switch (comboBox1.Text)
{
case"مقصد":
{

DataTableMapping tblmap = newDataTableMapping();
DataColumnMapping colmap = newDataColumnMapping();
da = newSqlDataAdapter("select * from destination where ds_num='" + comboBox2.Text + "'", cn);
tblmap = da.TableMappings.Add("Table", "srh2");
colmap = tblmap.ColumnMappings.Add("ds_num", "شماره مقصد");
colmap = tblmap.ColumnMappings.Add("ds_name", "نام مقصد");
colmap = tblmap.ColumnMappings.Add("ds_length", "طول مقصد");

da.Fill(ds);
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "srh2";
break;
}
case"اعزام کننده":
{
DataTableMapping tblmap = newDataTableMapping();
DataColumnMapping colmap = newDataColumnMapping();
da = newSqlDataAdapter("select * from sender where sn_num='" + comboBox2.Text + "'", cn);
tblmap = da.TableMappings.Add("Table", "srh2");
colmap = tblmap.ColumnMappings.Add("sn_num", " شماره اعزام کننده ");
colmap = tblmap.ColumnMappings.Add("sn_name", "نام اعزام کننده");

da.Fill(ds);

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "srh2";
break;
}
case"درخواست کننده":
{
DataTableMapping tblmap = newDataTableMapping();
DataColumnMapping colmap = newDataColumnMapping();
da = newSqlDataAdapter("select * from applicant where ap_num='" + comboBox2.Text + "'", cn);
tblmap = da.TableMappings.Add("Table", "srh2");
colmap = tblmap.ColumnMappings.Add("ap_num", "شماره درخواست کننده");
colmap = tblmap.ColumnMappings.Add("ap_name", "نام درخواست کننده");

da.Fill(ds);

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "srh2";
break;
}


برای پاک کردن دیتا گرید هم یک کلید گذاشتم که کد زیر را براش نوشتم


ds.Tables["srh2"].Columns .Clear();

PC2st
پنج شنبه 01 شهریور 1386, 22:43 عصر
ممکنه بیشتر توضیح بدهید دیگه چی را باید از اول پر کنم تا جواب بدهد
منظورم اینه که اگر داده ها رو از توی دیتاتیبل یا دیتاست پاک کردید، همش از بین میره و باید دوباره اونها رو توسط Fill پر کنید. منظور بخصوصی نداشتم :لبخند:


اگر روی دیتا گرید کلیک کنیم اطلاعات رانشان میدهد و مشکلی ندارد
من از این کد استفاده میکنم ولی جواب نمیدهد
من متوجه نشدم، چی اش جواب نمیده؟ عملیات Map کردن؟ یا پاک کردن از دیتاست؟