以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]提示“”字符串与data的转换  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114371)

--  作者:天一生水
--  发布时间:2018/2/4 19:44:00
--  [求助]提示“”字符串与data的转换

我想删除“EMS编辑”表格的当前行时,先清除“数据表”的对应列的列值,其中一个时日期型,改成is nothing 或 isnull都不行请老师指教!谢谢!

 

With Tables("EMS编辑_Table1")
   If .Current IsNot Nothing  Then
      Dim dr2 As DataRow = DataTables("送达管理").find("案号 = \'" & .Current("案号") & "\' and 一审_原告 like \'%" & .Current("收件人_姓名") & "%\'")
            If dr2 IsNot Nothing Then
                dr2("一审_原告_送达方式") = ""
                dr2("一审_原告_送达日期") = ""
            End If

For i As Integer = .BottomPosition To .TopPosition Step -1   \'删除行
                .Rows(i).Delete()
            Next
        End If
End With

 


--  作者:y2287958
--  发布时间:2018/2/4 19:49:00
--  
nothing
--  作者:天一生水
--  发布时间:2018/2/4 20:00:00
--  
多谢老师!
--  作者:天一生水
--  发布时间:2018/2/4 22:56:00
--  

选中单行执行代码没问题,如果拉黑选中多行或者点击列标全选行,前面清理其他表对应数据的代码就不执行了,请老师看看是哪里的原因?

 

Dim Result As DialogResult
Result = MessageBox.Show("慎!!!是否删除选定数据!"& vbcrlf &"是---将一并删除此案之前录入的送达信息"& vbcrlf &"否---仅删除选中行数据保留之前录入的送达信息", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
   
    With Tables("EMS编辑_Table1")
        If .Current IsNot Nothing  Then
            If .Current("收件人_单位名称") = "" Then   \'单位名称为空,就找姓名
                If .Current("收件人_姓名") <> "" Then
                    Dim dr2 As DataRow = DataTables("送达管理").find("案号 = \'" & .Current("案号") & "\' and 一审_原告 like \'%" & .Current("收件人_姓名") & "%\'")
                    If dr2 IsNot Nothing Then
                        dr2("一审_原告_送达方式") = ""
                        dr2("一审_原告_送达日期") = Nothing
                    End If
                Else            \'姓名为空
                    Return
                End If
            Else              \'单位名称不为空,就找单位名称
                Dim dr2 As DataRow = DataTables("送达管理").find("案号 = \'" & .Current("案号") & "\' and 一审_原告 like \'%" & .Current("收件人_单位名称") & "%\'")
                If dr2 IsNot Nothing Then
                    dr2("一审_原告_送达方式") = ""
                    dr2("一审_原告_送达日期") = Nothing
                End If
            End If
           
            For i As Integer = .BottomPosition To .TopPosition Step -1
                .Rows(i).Delete()
            Next
        End If
    End With
Else    \'直接删除当前行
    With Tables("EMS编辑_Table1")
        If .Current IsNot Nothing  Then
            For i As Integer = .BottomPosition To .TopPosition Step -1
                .Rows(i).Delete()
            Next
        End If
    End With
End If


--  作者:有点甜
--  发布时间:2018/2/4 23:09:00
--  
Dim Result As DialogResult
Result = MessageBox.Show("慎!!!是否删除选定数据!"& vbcrlf &"是---将一并删除此案之前录入的送达信息"& vbcrlf &"否---仅删除选中行数据保留之前录入的送达信息", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
   
    With Tables("EMS编辑_Table1")
        For i As Integer = .BottomPosition To .TopPosition Step -1
            Dim r As Row = .rows(i)
            If r("收件人_单位名称") = "" Then   \'单位名称为空,就找姓名
                If r("收件人_姓名") <> "" Then
                    Dim dr2 As DataRow = DataTables("送达管理").find("案号 = \'" & r("案号") & "\' and 一审_原告 like \'%" & r("收件人_姓名") & "%\'")
                    If dr2 IsNot Nothing Then
                        dr2("一审_原告_送达方式") = ""
                        dr2("一审_原告_送达日期") = Nothing
                    End If
                Else            \'姓名为空
                    Return
                End If
            Else              \'单位名称不为空,就找单位名称
                Dim dr2 As DataRow = DataTables("送达管理").find("案号 = \'" & r("案号") & "\' and 一审_原告 like \'%" & r("收件人_单位名称") & "%\'")
                If dr2 IsNot Nothing Then
                    dr2("一审_原告_送达方式") = ""
                    dr2("一审_原告_送达日期") = Nothing
                End If
            End If
            .Rows(i).Delete()
        Next
    End With
Else    \'直接删除当前行
    With Tables("EMS编辑_Table1")
        For i As Integer = .BottomPosition To .TopPosition Step -1
            .Rows(i).Delete()
        Next
    End With
End If