在多人同时编辑的情况下,为防止后台数据已更新,在每一次修改前均想判别前后台数据是否一致。为了简便和精细,不采用对比修改时间的方法,而是在表的StartEdit 事件中:
If e.Table.Current Is Nothing Then
Else
Dim dr As DataRow = Tables("基本信息").Current.DataRow '取当前行
If
e.Row(e.Col.name) <> dr.SQLGetValue(e.Col.name) '对前后台内容进行对比,
Dim Result As DialogResult
Result = MessageBox.Show("单元格前后台数据不一致,是否重新加载",
"提示",
MessageBoxButtons.YesNo)
If Result = DialogResult.Yes Then
dr.load(False) '运行速度慢
End If
End If
End If
有几个问题请教老师。
1、当某单元格前后台数据至少有一个为空时,就会提示数据类型出错,主要是NULL值比较的问题。
请问如何修改?
如果采取先分别判别e.Row(e.Col.name) 和dr.SQLGetValue(e.Col.name)是否为空,
那对应的代码又如何写?(不会使用ISNULL)
2、因为列有不同的类型,如何定义变量?
A =
e.Row(e.Col.name)
B=
dr.SQLGetValue(e.Col.name)
这样,在需要进行是否为空的判别时,可使代码更简捷。