2014-06-08 120 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的数据表然后刷新数据网格将是一个好主意。