2013-05-17 183 views
3

我在C#winform应用程序中使用radgridview来显示数据库中的数据。我也通过ADO.Net改变了数据库。问题出在我更改数据库之后,例如通过删除一行或添加新行,更改不会出现在gridview中。
我也想提一下,我已经通过智能标签绑定了数据库到gridview,当我尝试创建一个新的数据集并将其分配给radgridview1.datasource时,我收到了很多错误。
有关如何强制radgridview重新加载datasource的建议?Telerik gridview:数据库更改后如何刷新网格视图

+0

把一些代码.. – noobob

+0

我不认为你可以找到任何东西在代码中特殊的,用户后按下删除按钮,我通过ADO删除该行。就这样。 – Rsh

回答

0

好了,我发现自己的答案。虽然它只适用于dataGridView,并且不适用于dataListView
要删除记录,并更改提交到数据库:

radGridView1.CurrentRow.Delete(); 
this.yourTableAdapter.Update(yourDataSet); 

在另一方面,如果你已经添加了新的记录,你想改革列表:如果你知道如何

this.yourTableAdapter.Fill(yourDataSet.yourTabel); 

dataListView一样,我会很高兴听到。

+0

更新TableAdapter就是我上面提到的:)。祝你好运。 – checho

1

您可以使用简单的soultion网格刷新数据:

MyGrid.DataSource = null; 
MyGrid.DataSource = updatedData; 
+0

如何填写'updateddata'? – Rsh

+0

再次从数据库中加载它。 – alexmac

+0

如果我创建一个新的数据集并通过'adapter.Fill(ds)'填充它,我会在'itemDatabound'事件处理函数中得到空指针异常。 – Rsh

0

这是一个tutorial,一步步解释如何绑定网格。绑定后,更新TableAdapter后,引入基础源的更改将自动反映并更改,RadGridView将在DataTable中更新。

3

当数据源得到改变,刷新DataGrid中使用下面的代码:

this.radGridViewName.MasterTemplate.Refresh(null); 

此行解决我的问题:-)

0

该解决方案类似于亚历山大:

List<ClassOfDataRow> t = radGridView.ItemsSource as List<ClassOfDataRow>; 
radGridView.ItemsSource = null; 
radGridView.ItemsSource = t; 

ClassOfDataRow是用于在网格中存储一行数据的类,radGridView是RadGridView的名称。

0

数据集有明确的功能,可以将新数据传递到数据集之前调用:

Resultset.Clear(); 
DataAdapter.fill(Resultset); 
Radgridview.datasource=Resultset; 
相关问题