编辑绑定列表框内容后更新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和其他网站,但我找不到任何接近的东西。
使用Update时,执行顺序如下:
-
DataRow中的值将移动到参数值中。
-
引发OnRowUpdating事件。
-
命令执行。
-
如果该命令设置为FirstReturnedRecord,则第一个返回的结果将放置在DataRow中。
-
如果有输出参数,则将它们放置在DataRow中。
-
引发OnRowUpdated事件。
-
AcceptChanges被调用。
因此删除dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();
的行,然后重试
AcceptChanges
提交对数据集或数据表的更改。所有添加和修改的行变成CCD_ 3。
当您调用Update (..)
时,数据适配器不会查找要更新的任何修改行。Update ()
在内部调用AcceptChanges ()
。