2013-07-12 28 views
0

好吧,所以我想做一個簡單的SQL CE查看器應用程序只是爲了查看我的本地數據庫的另一個應用程序,我有它的設置,以便我可以選擇我想打開的數據庫和那麼它會自動填充數據庫中所有表的組合框。當我選擇一個表時,它會用表中的記錄填充一個DataGridView。C#:重置DataGridView的新數據表

我的問題是在表格之間切換。我似乎無法讓DataGridView從上一個表中刪除所有內容,並用新的表信息重新填充DataGridView。當然,每個表格都有不同的列和行等。

我已經在這裏搜索和搜索這裏,我發現每一個建議似乎並沒有工作。它用第一個表填充DataGridView就好了,但是當我選擇另一個時,它基本上將列和行添加到任何那裏。

我怎樣才能讓DataGridView完全清除新數據?

請不要告訴我使用dataGridView1.DataSource = null;試過這個,不起作用。

回答

1

嗯,我檢查了我的程序之一,只是改變DataSource屬性工作正常。我不必使用datagridview.Refresh()。也許它取決於你用來設置datagridview數據的那種DataSource?

+0

'conn = new SqlCeConnection(@「Data Source =」+ fixFilePath);使用(conn) 使用(conn) { conn.Open(); command = new SqlCeCommand(「SELECT * FROM」+ tableName,conn); daDataGridView = new SqlCeDataAdapter(command); daDataGridView.Fill(dtDataGridView); bsDataGridView.DataSource = dtDataGridView; dataGridView1.DataSource = bsDataGridView; }' –

+0

以下是源代碼:http://www.filedropper.com/sqlcedatabaseviewer –

+0

我不確定,但是您的問題可能會發生,因爲您在設置新表之前未清除數據表。單個DataTable上的Multiple Fill方法很可能是將新行添加到現有的行上。如果你還沒有嘗試過,你可以檢查一下。正如我所說,我不是100%肯定,現在不能自己檢查這一點。您也可以嘗試使用DataSet,然後將新選定的表格作爲DataTables添加到它。 – Radley

1

寫這條線,你已經做了填充DataSource用新的數據

dataGridView1.Refresh(); 

你並不需要直接清除DataGridView後。它始終通過修改DataGridViewDataSource來處理。

0

如果表格中沒有其他內容,則可以再次調用InitializeComponent()。但我認爲@Josh是對的。