使用tableadapter更新不会更新C#绑定文本框

时间:2011-06-27 00:56:23

标签: c# ado.net dataset tableadapter

我在获取数据集以更新数据库更改时遇到问题。

我首先使用我在表适配器上创建的FillBy查询来填充数据集。 “SELECT * FROM tblTest WHERE testID =(testID = @testId)

这将返回单个记录。我想将dataset.datatable的每一列绑定到表单上自己的文本框。

textBox1.DataBindings.Add("Text", dataset.datatable, dataset.datatable.NameColumn.ToString());

这样可以很好地加载数据。我对文本框中的数据进行了一些更改。然后,当我使用tableadapter.Update(数据集)更新对数据库的更改时,它不会更新记录。

如果我使用此数据集填充数据网格,进行更改,然后运行tableadapter.update(dataset),它将更新记录。

如何在不使用datagrid的情况下使用tableadapter.update()?我是否必须为tableadapter编写自定义更新?

1 个答案:

答案 0 :(得分:1)

我确实找出了数据库没有更新的原因。我检查了更改行的行状态,它仍处于“未修改”状态。

我更改了绑定设置并创建了一个新的 bindingsource ,并将数据源设置为数据集。并将数据集设置为dataset.datatable。然后将控件绑定到该bindingsource中的列。

在运行tableadapter.update(dataset)之前,需要以下行以便行状态更改

this.BindingSource.EndEdit(); 

然后一切都正确更新