2012-10-15 64 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