2013-01-17 167 views
4

我想創建一個刷新按鈕,以便在我完成更新之後自動刷新DataGridView中的數據。刷新按鈕 - 插入,刪除,更新後刷新數據網格視圖

但是,我的刷新按鈕似乎不起作用。顯示的數據與原始數據保持一致。它只會在手動結束我的Windows應用程序並重建它之後得到更新。

這裏是我的代碼:

private void button_refresh_Click(object sender, EventArgs e) 
     { 
      this.acuzioSecureStore_DatabaseXDataSet.AcceptChanges(); 
     } 

請協助。謝謝^ _^

+0

相關的問題,可能會幫助 - http:// stackoverflow。com/questions/11075031/refresh-datagridview-after-data-insert-in-db-by-another-dialog – dutzu

+0

嘗試過,但它似乎並不工作 –

+0

如何更新數據? – AbZy

回答

4

處理這個問題的最簡單方法是使用Binding Source對象。

如果您從Access數據庫將數據加載到DataGridView中,那麼您最有可能將數據存儲在數據集或數據表中。

創建一個綁定源對象,一旦你填充了你的DataTable/Dataset,將你的綁定源的數據源設置爲你的DataTable。然後將DataGridView中的數據源設置爲綁定源對象。

這樣做可以確保您的datagridview中的任何更改或反映在DataTable中並且反之亦然Versa。如果將數據重新加載到DataTable中,它將自動反映在數據網格中。

DataTable dt = new DataTable(); 

BindingSource bs = new BindingSource(); 

bs.DataSource = dt; 

dataGridView1.DataSource= bs; 

現在所有更改都會自動進行。

+0

是的,謝謝! –

+0

這不適合我。 – Solution

+0

您將需要將其作爲新問題提出並顯示您的代碼。 – Derek

0

嘿,上面的解決方案是好的,但是當上面的代碼執行時,表消失,並沒有看到。如果我執行

 da.Fill(ds, "p"); 
     dataGridView1.DataSource = ds.Tables["p"]; 

然後再次創建整個表。

+0

您可以指定哪個解決方案,以及又是如何創建整個表的影響(好,壞,其他)。 – Lizz

0
private void button_refresh_Click(object sender, EventArgs e) 
     { 
      SqlConnection con=new SqlConnection(@""); 
      string query="select * from abc"; 
      SqlCommand cmd=new SqlCommand(query,con); 
      SqlDataAdapter da=new SqlDataadapter(cmd); 
      DataTable dt=new DataTable(); 
      da.Fill(dt); 
      dataGridView1.DataSource=dt; 
     } 
0

我有一個DataGridView,在實體框架數據庫綁定到表:

dataGridView1.DataSource = MyDatabase.MyTable; 

它永遠不會戰勝兩場浪費天刷新。 我有一個簡單的解決方法解決它:

private void button_refresh_Click(object sender, EventArgs e) { 
    dataGridView1.DataSource = MyDatabase.MyTable.Where(i =>(true)); 
} 

一個醜陋的解決方法,以及朋友解釋我是如何工作 - 如果我這樣做只是dataGridView1.DataSource = database.table,它會緩存表,並永久使用緩存的數據。每次我們創建一個新的虛擬查詢時,都會阻止.net將其緩存。

0

請試試這個,它爲我工作,讓我知道如果你有更好的選擇。

private void button3_Click(object sender, EventArgs e) 
{ 
    dataGridView1.Refresh(); 
} 
0

可以綁定的dataGridView在pageLoad的或用戶控件加載事件,並呼籲在網格視圖通電後的變化Load事件

this.ucUsers_Load(NULL,NULL); // Windows的C#