Foxtable(狐表)用户栏目专家坐堂 → 从字符串“”到类型“Integer”的转换无效


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

主题:从字符串“”到类型“Integer”的转换无效

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
从字符串“”到类型“Integer”的转换无效  发帖心情 Post By:2022/8/23 8:50:00 [只看该作者]

Dim Int1 As Integer = CInt(e.DataRow("销售单行号"))
dr1 = DataTables("销售单").Find("产品代号 = '" & e.DataRow("物料编号") & "' And 销售单号 = '" & e.DataRow("销售单号") & "' And  销售单行号 = '" & Int1 & "'")

上面是“出入库”这个表格的 datacolchanged 里面的代码。因为"销售单"这个表的列"销售单行号"是整数,而出入库”这个表的列"销售单行号"是字符,所以我要把“出入库”的e.DataRow("销售单行号") 转化为整数再与"销售单"的列"销售单行号"进行比较。但是,执行时出现如下警告:

错误所在事件:表,出入库2,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Integer”的转换无效。
输入字符串的格式不正确。

请问要怎样修改代码?谢谢。

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


加好友 发短信
等级:四尾狐 帖子:826 积分:7130 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/8/23 8:53:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/1513.htm
看一下,能否解决。
CInt
转换为整数(Integer)。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/23 8:54:00 [只看该作者]

如果我不进行转换,而用
dr1 = DataTables("销售单").Find("产品代号 = '" & e.DataRow("物料编号") & "' And 销售单号 = '" & e.DataRow("销售单号") & "' And  销售单行号 = '" & e.DataRow("销售单行号") & "'") 
的话,就会出现如下警告:
无法在 System.int32 和 system.String 上执行“=”操作。

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


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

应该是单元格没有值导致的,应该加上判断

if e.DataRow.isnull("销售单行号") = false
Dim Int1 As Integer = CInt(e.DataRow("销售单行号"))
dr1 = DataTables("销售单").Find("产品代号 = '" & e.DataRow("物料编号") & "' And 销售单号 = '" & e.DataRow("销售单号") & "' And  销售单行号 = " & Int1)
endif

表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。

例如:

Tables("订单").Filter = "[产品] = 'PD01'"  '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#"  '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1"  '数值直接使用


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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/23 9:23:00 [只看该作者]

谢谢。是要先判断"销售单行号"是否为空值才行,而且不需要把字符转换为整数都可以。

 回到顶部