有两个表:想当其中一个表修改和新增记录后,另一个表同步更新修改或新增记录,
在【表属性】的〖BeforeSaveDataRow〗 事件中写入以下代码,提示出错
'BeforeSaveDataRow 保存目一数据行之前执行,可以在此对数据进行最终的验证
If DataTables.Contains("Equa_GPS") = False Then '如果表 Equa_GS 没有加载
DataTables.Load("Equa_GPS") '加载表 Equa_GPS
End If
If DataTables.Contains("Equa_GPS") = False Then '如果 Equa_GPS 没有加载
MessageBox.Show("系统导航表未能加载,无法与菜单权限表同步更新", _
"同步更新提示", _
MessageBoxButtons.OK, _
MessageBoxIcon.Warning)
'Ok Retry Cancel Yes No,Error Information None Question Warning
Return
End If
'将整行记录同步更新至 Equa_GPS 表
Dim dr_source As DataRow = e.DataRow '正在保存的记录行
If (dr_source.RowState = DataRowState.Modified Or _
dr_source.RowState = DataRowState.Added) = False Then '没有已修改或新增记录
Return
End If
Dim EL_TypeName As String = e.DataRow("TypeName") '分类
Dim EL_PageName As String = e.DataRow("PageName") '导航栏名称
Dim EL_TopicName As String = e.DataRow("TopicName") '任务栏名称
Dim dr_aim As Row '定义数据行
Dim dr1 As DataRow '定义重复名称检查数据查询
Dim Find_Filter As String = "" '定义查询筛选条件
Find_Filter = "[TypeName] ="" & EL_TypeName & """ & " And " & _
"[PageName] ="" & EL_PageName & """ & " And " & _
"[TopicName] ="" & EL_TopicName & """
Tables("EQUA_GPS").Filter = "" '取消筛选,恢复为所有记录
dr1 = DataTables("EQUA_GPS").Find(Find_Filter,"TypeName",0) '执行查询,返回结果集(查找条件,排序)
If dr1 IsNot Nothing Then '如果找到记录
Else '没有找到记录,新增一行
Tables("EQUA_GPS").AddNew() '增加一行
End If
dr_aim = Tables("EQUA_GPS").Current '返回当前行(定位到记录行)
dr_aim("IS_Ban") = dr_source("IS_Ban") '是否禁用
dr_aim("TypeName") = dr_source("TypeName") '分类
dr_aim("PageName") = dr_source("PageName") '导航栏名称
dr_aim("PageText") = dr_source("PageText") '导航栏标题
dr_aim("Order_By") = dr_source("Order_By") '显示顺序
dr_aim("TopicName") = dr_source("TopicName") '任务栏名称
dr_aim("TopicText") = dr_source("TopicText") '任务栏标题
dr_aim("PageICO") = dr_source("PageICO") '图标
dr_aim("ShowICO") = dr_source("ShowICO") '显示图标
dr_aim("CmdText") = dr_source("CmdText") '执行命令
dr_aim("MassText") = dr_source("MassText") '提示信息
Tables("EQUA_GPS").Save() '保存数据
'Tables("EQUA_GPS").Filter = "" '取消筛选,恢复为所有记录
'结束
出错提示:
Exception has been thrown by the target of an invocation.
Cannot interpret token '"' at position 13.
例外被调用的目标投掷。无法解释的标记“”在位置13
此主题相关图片如下:错误提示.jpg

两个表的表结构信息如下:
此主题相关图片如下:系统导航-表结构.jpg
此主题相关图片如下:菜单权限-表结构.jpg
