我有一个带有一些DataRows和DataTables的.Net应用程序。
数据表具有一些约束(列不为空,唯一列,列大小...)
当用户键入一些数据时,将执行以下代码。运行此代码时,它将针对数据表中的列引发默认数据验证(列不为空,唯一列,列大小...)
除了默认验证之外,我还添加了一些业务逻辑检查...
sub ValidationProcedure
Dim MyRow as DataRowView = something
'End edit the user inputs
Try
MyRow.EndEdit()
catch Ex as exception
Msgbox("Please correct the errors")
MyRow.CancelEdit()
exit sub
End try
'Clear previous errors
MyRow.ClearErrors
'Business logic checks
If MyRow.Item("C1") > MyRow.Item("C2") then 'Or whatever condition
Msgbox("Please correct the errors")
MyRow.SetColumnError(ColumnId, "C1 should be lower than C2")
MyRow.CancelEdit()
end if
end sub
但是,此代码可以正常工作,当默认验证成功且业务逻辑验证失败时,自EndEdit成功以来,Row的值不会返回其初始值。 我希望在调用验证之前,该行可以返回到其原始状态
有人知道如何在调用验证过程之前将行返回到其原始状态吗?
欢呼