以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请求简化代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=172923)

--  作者:g1j2h3
--  发布时间:2021/11/7 17:18:00
--  请求简化代码

 

Dim dr As DataRow = DataTables("货物来源").Find("编号 = \'" & e.DataRow("编号") & "\'")
If dr IsNot Nothing Then
    dr.Delete()
End  If
Dim drs As DataRow = DataTables("送货安排").Find("编号 = \'" & e.DataRow("编号") & "\'")
If drs IsNot Nothing Then
    drs.Delete()
End  If

 

请还让大师看一下这段代码如何简化?

[此贴子已经被作者于2021/11/7 18:31:28编辑过]

--  作者:有点蓝
--  发布时间:2021/11/7 20:40:00
--  
如果只有2个表,没有什么可优化的了。

如果表多可以这样
Dim dr As DataRow
for each s as string in {"货物来源","送货安排"}
dr = DataTables(s).Find("编号 = \'" & e.DataRow("编号") & "\'")
If dr IsNot Nothing Then
    dr.Delete()
End  If
next

或者
Dim dr As DataRow
for each s as string in {"货物来源","送货安排"}
DataTables(s).deletefor("编号 = \'" & e.DataRow("编号") & "\'")
next


--  作者:g1j2h3
--  发布时间:2021/11/7 20:49:00
--  
谢谢
--  作者:程兴刚
--  发布时间:2021/11/7 22:20:00
--  
Dim s as string = "编号 = \'" & e.DataRow("编号") & "\'"
DataTables("货物来源").deletefor(s)
DataTables("送货安排").deletefor(s)

方法多多!