编辑绑定列表框内容后更新MS Access

本文关键字:更新 MS Access 绑定 列表 编辑 | 更新日期: 2023-09-27 18:07:20

我创建了一个列表框,该列表框绑定到连接到MS Access数据库的C#中的数据表。

这个想法是在列表框上显示表的内容,通过选择每一个,它就会在整个表单的文本框上显示其他值。我做到了。我的下一个问题是在编辑文本框中的值时更新数据库。现在我所做的是创建一个更新按钮,它将更新列表框中的值,然后为列表框正在使用的dataAdapter调用update((函数,但它似乎不会影响表。我的代码在下面。

private void btnUpdate_Click(object sender, EventArgs e)
{
    if (lstEmployees.SelectedIndex > -1)
    {
        dEmployeesTable.Rows[lstEmployees.SelectedIndex].BeginEdit();
        dEmployeesTable.Rows[lstEmployees.SelectedIndex]["LastName"] = txtLastName.Text;
        dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();
        dAdapter2.Update(dEmployeesTable);
    }
}

我遗漏了什么吗?我已经在数据网格视图中尝试过了,它工作得很好,包括编辑和删除。不确定为什么它在列表框上不起作用。

我试着四处寻找,搜索stackoverflow和其他网站,但我找不到任何接近的东西。

编辑绑定列表框内容后更新MS Access

使用Update时,执行顺序如下:

  • DataRow中的值将移动到参数值中。

  • 引发OnRowUpdating事件。

  • 命令执行。

  • 如果该命令设置为FirstReturnedRecord,则第一个返回的结果将放置在DataRow中。

  • 如果有输出参数,则将它们放置在DataRow中。

  • 引发OnRowUpdated事件。

  • AcceptChanges被调用。

因此删除dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();的行,然后重试

AcceptChanges提交对数据集或数据表的更改。所有添加和修改的行变成CCD_ 3。

当您调用Update (..)时,数据适配器不会查找要更新的任何修改行。Update ()在内部调用AcceptChanges ()