以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么判定修改前的值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122842)

--  作者:紫色幽魂
--  发布时间:2018/8/2 21:12:00
--  [求助]怎么判定修改前的值
Dim Result As DialogResult = MessageBox.Show("是否将明细表数据全部更改(不包含下料组)","提示",MessageBoxButtons.YesNo)
        If e.DataRow.OriginalValue("班组") Is Nothing Then
            Return
        Else
            If Result = DialogResult.Yes Then
                For Each dr3 As DataRow In drs3
                    For Each dr1 As DataRow In drs1
                        dr1("班组") = e.DataRow("班组") \'修改构件清单表
                    Next
                    dr3("班组") = e.DataRow("班组") \'修改检测明细表(不包含班组等于下料组的行)
                Next
            End If


请问这个怎么修改,如果修改前的值是空值就不弹出提示框,否则弹出提示框

--  作者:有点甜
--  发布时间:2018/8/2 21:21:00
--  

1、这样写报错? e.DataRow.OriginalValue("班组") Is Nothing

 

2、试试

 

If e.DataRow.OriginalValue("班组") Is Nothing Then
    Return
Else
    Dim Result As DialogResult = MessageBox.Show("是否将明细表数据全部更改(不包含下料组)","提示",MessageBoxButtons.YesNo)
    If Result = DialogResult.Yes Then
        For Each dr3 As DataRow In drs3
            For Each dr1 As DataRow In drs1
                dr1("班组") = e.DataRow("班组") \'修改构件清单表
            Next
            dr3("班组") = e.DataRow("班组") \'修改检测明细表(不包含班组等于下料组的行)
        Next
    End If
End If


--  作者:紫色幽魂
--  发布时间:2018/8/3 8:32:00
--  回复:(有点甜)1、这样写报错? e.DataRow.Original...
报错倒是不会报错,但是不会达到想要的效果,我想要空值修改的时候不提示,不是空值就弹出提示框
--  作者:有点甜
--  发布时间:2018/8/3 8:41:00
--  

改成2楼有没有问题?或者改成

 

If e.datacol.name = "班组" andalso e.newvalue = nothing Then
    Return
Else
    Dim Result As DialogResult = MessageBox.Show("是否将明细表数据全部更改(不包含下料组)","提示",MessageBoxButtons.YesNo)
    If Result = DialogResult.Yes Then
        For Each dr3 As DataRow In drs3
            For Each dr1 As DataRow In drs1
                dr1("班组") = e.DataRow("班组") \'修改构件清单表
            Next
            dr3("班组") = e.DataRow("班组") \'修改检测明细表(不包含班组等于下料组的行)
        Next
    End If
End If