2014-06-08 172 views
0

我想用c#WPF和MySQL編寫程序。我有兩種形式。在form1,有一個數據網格,我可以從MySQL數據庫中看到我的表格內容(帶有select),它工作正常。在form2我可以添加一些東西到我的數據庫(插入),這也很好。C#Datagrid刷新

當我啓動程序,並首先列出的內容,然後點擊添加玩家窗口2打開了),我添加一個播放器,它不會出現在DataGrid中第一,我總是不得不關閉首先程序,然後再次啓動它以查看數據網格上添加的播放器。

我希望你們明白我的意思。我真的需要一個答案,我真的很感激。

+0

您是否綁定到從ObservableCollection繼承的集合?這樣做將確保DataGrid識別集合的更新。 – Slade

+0

除非你真的使用兩種語言,否則請不要標記爲'C'和'C#'。而在WPF中,Forms不存在。你在談論單獨的窗戶嗎? –

+0

你可以檢查的另一件事是你綁定網格的ItemsSource屬性是一個依賴屬性或實現INotifyPropertyChanged。這樣,如果你改變這個屬性的改變(即Model.Items = [new from database]),視圖將認識到該屬性已經改變並更新你的DataGrid – Slade

回答

0

你只需要將數據「重新加載」到datagridview。 例如:

   addPlayer addPlayer = new addPlayer(); 
      private void addBTN_Click(object sender, EventArgs e) 
      { 

       addPlayer.ShowDialog(); 
       this.playersTBLTableAdapter.Fill(this.DataBaseDataSet.playersTBL); 
      } 

這裏的代碼的關鍵位是這一行:

this.playersTBLTableAdapter.Fill(this.DataBaseDataSet.playersTBL); 

將「刷新」您的datagridview數據,當您關閉「添加球員」的形式。 假設您正在使用表適配器。

0

使用datagridView1.Refresh();

刷新,你希望看到的變化,心裏也記住這對於GridView中的DataTable還需要更新DataGridView的。

在addplayer click事件後重新加載gridview的數據表然後刷新數據網格將是一個好主意。