gpt4 book ai didi

c# - TextBox 更改未保存到 DataTable

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:58 24 4
gpt4 key购买 nike

我在 WinForms 应用程序中进行简单的表格编辑时遇到了问题。我一定是错过了一步。

我有一个 DataSet,其中包含一个 DataTable,它通过 SqlDataAdapter 连接到一个数据库。 SqlDataAdapter 上有一个SqlCommandBuilder。在窗体上,有 TextBoxes 绑定(bind)到 DataTable。绑定(bind)是在 Designer 中完成的,其机器生成的语句如下所示:

this.tbLast.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.belkData, "belk_mem.last", true));

当我在 DataTable 中填充行时,数据库中的值出现在文本框中,但是当我更改 TextBox 的内容时,这些更改显然不是正在转到 DataTable。当我尝试保存更改时,以下两个都返回 null:

DataTable dtChanges = dtMem.GetChanges();
DataSet dsChanges = belkData.GetChanges();

我忘记了什么?


编辑 - 响应 mrlucmorin :

保存在一个按钮下。代码是:

    BindingContext[belkData, "belk_mem"].EndCurrentEdit();

try
{
DataSet dsChanges = belkData.GetChanges();
if (dsChanges != null)
{
int nRows = sdaMem.Update(dsChanges);
MessageBox.Show("Row(s) Updated: " + nRows.ToString());
belkData.AcceptChanges();
}
else { MessageBox.Show("Nothing to save.", "No changes"); }
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}

我已经尝试在不改变行为的情况下输入这些语句:

dtMem.AcceptChanges();
belkData.AcceptChanges();

最佳答案

您缺少 DataSourceUpdateMode.OnPropertyChanged创建时 Binding实例。

关于c# - TextBox 更改未保存到 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com