如果不是新增行,就判断日期的当前值和原始值是否相同,如果相同就return
将下面这段代码:
Dim dr As DataRow = e.DataRow
Dim pf As String
If dr.RowState <> DataRowState.Added Then '如果不是新增行
Return '那么返回
ElseIf dr.IsNull("日期") Then '如果没有输入日期
e.Cancel = True '取消保存此行
MessageBox.Show("必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
pf = Format(dr("日期"),"yyMM") '否则获得编号的前缀,两位年,两位月
End If
改为:
Dim dr As DataRow = e.DataRow
Dim pf As String
If dr.RowState <> DataRowState.Added Then '如果不是新增行
If e.DataRow("日期") = e.DataRow.OriginalValue("日期") Then '而且日期没有修改
Return '那么返回
End If
End If
If dr.IsNull("日期") Then '如果没有输入日期
e.Cancel = True '取消保存此行
MessageBox.Show("必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return '返回
End If
pf = Format(dr("日期"),"yyMM") '否则获得编号的前缀,两位年,两位月
[此贴子已经被作者于2011-11-3 9:10:26编辑过]