Foxtable(狐表)用户栏目专家坐堂 → 报错


  共有4719人关注过本帖树形打印复制链接

主题:报错

帅哥哟,离线,有人找我吗?
aaa1234
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:1650 威望:0 精华:0 注册:2021/7/30 8:48:00
报错  发帖心情 Post By:2022/1/17 11:17:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.10.2
错误所在事件:表,Table_3, DataColChanged
详细错误信息:
调用的目标发生了异常。
表达式包含无效的字符串常量: '281428126201''。
代码是
If e.DataCol.Name = "追踪号" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("追踪号") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("物流对账表").Find("[trackingID] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("运费金额") = dr("fee")
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
aaa1234
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:1650 威望:0 精华:0 注册:2021/7/30 8:48:00
  发帖心情 Post By:2022/1/17 11:18:00 [只看该作者]

前面是没有问题的,然后我想刷新一下表的数据
加了DataTables("table_3").DataCols("追踪号").RaiseDataColChanged()
后出现报错了

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/1/17 11:19:00 [只看该作者]

表达式包含无效的字符串常量: '281428126201''。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/17 11:22:00 [只看该作者]

"追踪号"里面的数据是不是有单引号?
dr = DataTables("物流对账表").Find("[trackingID] = '" & e.NewValue.replace("'","''") & "'")

 回到顶部
帅哥哟,离线,有人找我吗?
aaa1234
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:1650 威望:0 精华:0 注册:2021/7/30 8:48:00
  发帖心情 Post By:2022/1/17 11:23:00 [只看该作者]

能不能判断如果没有这种无效的字符串才执行,否则不执行放在AfterLoad里面

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/17 11:29:00 [只看该作者]

Contains判断字符串是否包含给定的子字符串。

 回到顶部
帅哥哟,离线,有人找我吗?
aaa1234
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:1650 威望:0 精华:0 注册:2021/7/30 8:48:00
  发帖心情 Post By:2022/1/17 11:58:00 [只看该作者]

老师我的意思是如果遇到无效字符无论是什么都跳过此记录应该怎么弄,以为这个表里面的追踪号有太多这种无效字符,想加个判断

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/17 13:42:00 [只看该作者]

if e.NewValue.Contains("'") orelse e.NewValue.Contains("某特殊符号") orelse e.NewValue.Contains.........

 回到顶部
帅哥哟,离线,有人找我吗?
aaa1234
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:1650 威望:0 精华:0 注册:2021/7/30 8:48:00
  发帖心情 Post By:2022/1/17 13:47:00 [只看该作者]

放在If e.DataCol.Name = "追踪号" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("追踪号") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("物流对账表").Find("[trackingID] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("运费金额") = dr("fee")
        End If
    End If
End If里面吗

 回到顶部