【发布时间】:2011-03-12 03:35:17
【问题描述】:
在我的表单代码顶部,我有以下语句(以及其他一些不相关的语句):
Dim LastDataRow As DataRow
Public Event RowChanged As DataRowChangeEventHandler
当我的表单加载时,我运行以下代码行:
AddHandler dt.RowChanged, New DataRowChangeEventHandler(AddressOf Row_Changed)
表单加载后,我有一个 FetchData 按钮,该按钮连接到数据库并将记录带入数据表对象。在此填充操作期间,我的 Row_Changed 事件触发(对于我认为的每条记录)并尝试运行 DataAdapter.Update(DataTable) (伪代码),但最终失败,因为我没有尚未创建命令。我在 Row_Changed 过程中遇到的错误是:
在传递带有新行的 DataRow 集合时,更新需要有效的 InsertCommand。
我什至根本没有计划使用 InsertCommand,因为我不允许用户从这个表单插入记录。我确实计划允许他们删除或修改现有记录,但不插入新记录。
到目前为止,我发现解决此问题的唯一方法是在填充数据表后运行我的 AddHandler 语句。但是,我正在尝试弄清楚如何重写我的代码,以便我可以刷新数据表,而无需关闭表单/应用程序并不得不再次打开它。我认为这是一个单独讨论的问题。
知道为什么我会收到上述错误消息吗?
【问题讨论】: