以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  代码执行报错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=148384)

--  作者:lgz518
--  发布时间:2020/4/6 23:21:00
--  代码执行报错
需求是,表C从表B的“单号”导入"产品编号""产品名称""数量",同时也从表A把其单价也导入。

执行下面代码,报错,执行不了,请老师,指导,谢谢

If e.DataCol.Name = "单号" Then 
    If e.NewValue Is Nothing Then 
        e.DataRow("产品编号") = Nothing
        e.DataRow("产品名称") = Nothing
        e.DataRow("数量") = Nothing
    Else
        Dim dr As DataRow
       
        dr = DataTables("表B").Find("[产品编号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            e.DataRow("产品编号") = dr("产品编号")
            e.DataRow("产品名称") = dr("产品名称")
            e.DataRow("数量") = dr("数量")
            
        End If
    End If
End If


If e.DataCol.Name = "产品编号" Then 
    If e.NewValue Is Nothing Then 
        e.DataRow("产品编号") = Nothing 
        e.DataRow("产品名称") = Nothing 
        
        e.DataRow("单价") = Nothing 
    Else
        Dim dr As DataRow
        dr = DataTables("产品A").Find("[产品编号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then 
            e.DataRow("产品编号") = dr("产品编号")
            e.DataRow("产品名称") = dr("产品名称")
            
            e.DataRow("单价") = dr("单价")
        End If
    End If
End If

报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.12.17.18
错误所在事件:表,表C,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.Int32 和 System.String 上执行“=”操作。






--  作者:程兴刚
--  发布时间:2020/4/7 1:19:00
--  
您的单号或产品编号至少有一个是数值型字段,这一句改成这样:

dr = DataTables("产品A").Find("[产品编号] = " & e.NewValue)

--  作者:lgz518
--  发布时间:2020/4/7 11:44:00
--  
老师,还是不行,谢谢
--  作者:有点蓝
--  发布时间:2020/4/7 12:07:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm
看哪句代码有问题