编辑绑定列表框内容后更新MS Access
问题描述:
我创建了一个绑定到C#数据表连接到MS Access数据库的列表框。编辑绑定列表框内容后更新MS Access
这个想法是在列表框中显示表格的内容,并通过选择每一个,然后它将在整个表单上的文本框上显示其他值。我能够做到这一点。我的下一个问题是在编辑文本框中的值时更新数据库。现在我所做的就是创建一个更新按钮,它将更新列表框中的值,然后调用列表框正在使用的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);
}
}
我错过了什么?我已经尝试了这与datagridviews,它工作正常,包括编辑和删除。不知道为什么它不适用于列表框。
我试过环顾四周,搜索stackoverflow和其他网站,但我找不到任何关闭。
答
当使用Update,执行的顺序如下:
在DataRow的值被移动到的参数值。
OnRowUpdating事件引发。
该命令执行。
如果该命令设置为FirstReturnedRecord,那么第一个返回的结果将被放置在DataRow中。
如果有输出参数,它们被放置在DataRow。
提出OnRowUpdated事件。
AcceptChanges被调用。
所以去除dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();
线,然后再试一次
AcceptChanges
提交更改的数据集或数据表。所有添加和修改的行 变成"Unchanged"
。
当您拨打Update (..)
时,数据适配器不会 找到任何修改的行进行更新。 Update()
内部调用AcceptChanges()
。