2011-06-27 38 views
2

我有问题获取数据集来更新对数据库的更改。C#绑定文本框不会更新使用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

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

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

运行之前需要以下行tableadapter.update(集),使该行状态改变

this.BindingSource.EndEdit(); 

然后一切都正确更新