c#数据库未从数据绑定更新

c#数据库未从数据绑定更新,c#,winforms,C#,Winforms,我对Windows窗体比较陌生,在获取包含多个文本字段的窗体以更新数据库时遇到困难 clientsTableAdapter.FillByID(dataSetClients.Clients, tempID); txtForename.DataBindings.Add("Text", dataSetClients.Clients, "Forename"); txtForename.Leave += new EventHandler(updateDataSet); private void upd

我对Windows窗体比较陌生,在获取包含多个文本字段的窗体以更新数据库时遇到困难

clientsTableAdapter.FillByID(dataSetClients.Clients, tempID);

txtForename.DataBindings.Add("Text", dataSetClients.Clients, "Forename");
txtForename.Leave += new EventHandler(updateDataSet);

private void updateDataSet(object sender, EventArgs e)
{
    this.clientsTableAdapter.Update(this.dataSetClients.Clients);
}
我填充数据集,向每个字段添加数据绑定,并向更新数据库的每个字段添加休假事件

clientsTableAdapter.FillByID(dataSetClients.Clients, tempID);

txtForename.DataBindings.Add("Text", dataSetClients.Clients, "Forename");
txtForename.Leave += new EventHandler(updateDataSet);

private void updateDataSet(object sender, EventArgs e)
{
    this.clientsTableAdapter.Update(this.dataSetClients.Clients);
}
数据库不更新,我用很多不同的方法尝试过,唯一有效的方法是手动更新数据集,然后在适配器上运行.update(),如下所示

this.dataSetClients.Clients.Rows[0]["Forename"] = "New Forename";
this.clientsTableAdapter.Update(this.dataSetClients.Clients);
非常感谢您对本主题的任何帮助或指导。

数据绑定的主要功能是验证:由于验证事件在之前不会调用,因此不会更新值


为数据绑定指定
DataSourceUpdateMode.OnPropertyChanged
应该可以工作。

不确定这个问题是否仍然存在,我只想贡献一些帮助我的东西。我对数据集、数据绑定和数据集中更改但数据库中未更改的数据也有相同的问题。我尝试了所有这些技巧,但似乎没有任何帮助

DataSet.Data.Tables[0].Rows[0].EndEdit(); //0 for your Index/Tablename
这对我很有帮助,因此我可以将数据绑定到数据集,然后,当我想要更新数据时,我将“EndEdit()”设置到当前数据集中的每个表

我也试过:

foreach (Control bla in DisplayDict[SubTyp.ToString()].DataControlHelper.Values)
{
    bla.BindingContext[DisplayDict[SubTyp.ToString()].DBData.Data].EndCurrentEdit();
}
这没有改变,我也尝试了.GetChanges()和.HasChanges(),但是.EndEdit()是我代码中缺少的一个东西

我希望这对某人有帮助


另外,很抱歉我的英语不好,我上次使用它已经有一段时间了(:

尽管这很有帮助,谢谢,但它并没有解决问题。数据绑定不是问题,当我在适配器上运行Update()函数时,是当它不起作用时。@buaked when you run Update()从左开始,数据集是否已用新值更新?@Stuart是的,它只是没有用(新更新的)数据集更新数据库。@数据集的HasChanges属性是否为true?@Stuart否HasChanges仍然设置为false,我猜问题出在数据集上?知道是什么原因吗?