手动验证失败时如何恢复DataRow的价值?

时间:2018-08-28 17:50:45

标签: vb.net datarow

我有一个带有一些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的值不会返回其初始值。 我希望在调用验证之前,该行可以返回到其原始状态

有人知道如何在调用验证过程之前将行返回到其原始状态吗?

欢呼

0 个答案:

没有答案