2012-02-22 88 views
2

我有一个dataGridView绑定到一个表。在与DataGridView相同的表单中,我有几个文本框和一个按钮,用于向数据库添加新值并希望它们也显示在gridView中。在数据库中保存工作,只是新的值不显示在gridView中。我曾尝试以下:刷新DataGridView

this.Validate(); 
this.pBindingSource.EndEdit(); 
this.pTableAdapter.Update(this.DBDataSet); 
pDataGridView.Refresh(); 

这没有奏效。从我的理解.Refresh方法只重绘GridView,所以它应该在更新tableAdapter后工作,所以我想。但事实并非如此。

然后我试着:

this.pDataGridView.DataSource = null; 
this.pDataGridView.DataSource = this.pBindingSource; 
pDataGridView.Refresh(); 

这也不起作用。然后尝试将ResetBindings()作为绑定源,但没有奏效,然后我用完了想法。

如何刷新DataGridView?

+0

我认为你需要使用:this.pBindingSource.DataSource – 2012-02-22 20:33:31

+0

它没有工作。感谢您的输入tho – 2012-02-22 20:46:05

+0

第一个问题:Silvelight还是WPF? 第二个:您用于数据收集的什么类型 - pBindingSource? – Meonester 2012-02-22 20:58:17

回答

1

您可以修改像

this.pDataGridView.DataSource = null; 
this.pDataGridView.DataBind(); 
this.pDataGridView.DataSource = this.pBindingSource; 
pDataGridView.DataBind(); 
+0

pDataGridView没有.DataBind()方法。我正在使用Visual Studio 2010 btw – 2012-02-23 09:05:47

+3

@orzacsergiu,只是你知道:VS的版本与c#的功能完全无关。我认为你应该说明你的.Net框架的版本。 – gunr2171 2013-05-08 16:31:43

0

您也可以使用此:

this.[tablename]tableAdapter.Fill(this.[Database]DataSet.[tablename]); 
在每一个按钮命令

,它至少为我工作。

例如我的代码看起来是这样的:

this.studentinfoTableAdapter.Fill(this.studentDataSet.studentinfo);