编辑绑定列表框内容后更新 MS Access
Posted
技术标签:
【中文标题】编辑绑定列表框内容后更新 MS Access【英文标题】:Update MS Access after editing bound listbox contents 【发布时间】:2011-09-01 18:37:32 【问题描述】:我在连接到 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);
我错过了什么吗?我已经用 datagridviews 试过了,它工作正常,包括编辑和删除。不知道为什么它不适用于列表框。
我试过四处寻找并搜索 *** 和其他网站,但找不到任何接近的东西。
【问题讨论】:
【参考方案1】:使用Update时,执行顺序如下:
DataRow 中的值被移动到参数值中。
引发OnRowUpdating 事件。
命令执行。
如果命令设置为 FirstReturnedRecord,那么第一个返回的结果将放在 DataRow 中。
如果有输出参数,则放在DataRow中。
引发OnRowUpdated 事件。
AcceptChanges 被调用。
所以删除dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();
这一行再试一次
AcceptChanges
提交对数据集或数据表的更改。所有添加和修改的行
变成"Unchanged"
。
当您调用Update (..)
时,数据适配器不会
查找要更新的任何修改的行。 Update ()
内部调用AcceptChanges ()
。
【讨论】:
以上是关于编辑绑定列表框内容后更新 MS Access的主要内容,如果未能解决你的问题,请参考以下文章
更新取消事件之前的 MS Access 不适用于未绑定的组合框
MS-Access 连接表在两个互斥列表之间插入/删除(2 个列表框)