2012-10-15 38 views
0

我的应用程序有一个datagridview,通过mysql连接器显示数据,我想清除或刷新数据网格,但无法弄清楚如何。使用数据源清除datagridview

我试图

dataGridView2.DataSource = null; 

,但它不会清除数据源。

这是我的代码

using MySql.Data.MySqlClient; 

Boolean DataLoaded = false; 
    string SQL = null; 

    MySqlConnection MysqlConn; 
    MySqlCommand WerkDataCommand = new MySqlCommand(); 
    MySqlDataAdapter WerkDataAdapter = new MySqlDataAdapter(); 
    DataTable WerkData = new DataTable(); 

private void gegevensOphalenBTN_Click(object sender, EventArgs e) 
    { 
     MysqlConn = new MySqlConnection(); 

     MysqlConn.ConnectionString = "server=myserver;" + "user id=user;" + "password=***;" + "database=database"; 

     SQL = "SELECT * FROM werkverslagen"; 


     try 
     { 
      dataGridView2.DataSource = null; 
      MysqlConn.Open(); 

      WerkDataCommand.Connection = MysqlConn; 
      WerkDataCommand.CommandText = SQL; 

      WerkDataAdapter.SelectCommand = WerkDataCommand; 
      WerkDataAdapter.Fill(WerkData); 

      dataGridView2.DataSource = WerkData; 
     } 
     catch (MySqlException myerror) 
     { 
      MessageBox.Show("Database gives the following error: " + myerror.Message); 
     } 
     finally 
     { 
      MysqlConn.Close(); 
      MysqlConn.Dispose(); 
      button4.Enabled = true; 
     } 
    } 

它仍然会保持数据源,并增加相同的行到网格。

+0

你在哪里定义 “WerkData”?它是什么数据类型? – NDraskovic

+0

添加了WerkData定义。 – PandaNL

+0

你可以欺骗一下。当你想清除dataGridView时,可以使用'WerkData.Clear()'方法,然后使用dataGridView2.DataSource = WerkData' 这样dataGridView将清除所有的数据,但是头文件将保留。之后,您可以使用'dataGridView.DataSource = null'来清除显示的标题。 – NDraskovic

回答

0

你只需要做到:

dataGridView2.Rows.Clear(); 
dataGridView2.Refresh(); 
+0

同样的错误,大炮在dataGridView2.Rows.Clear()清除此列表; 。第二次获得信息后。清楚的是,适配器将获取列并将其放入datagridview中,而不是在集合中创建它们。所以datagridview2.rows.clear不会做任何事情。 – PandaNL