以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 从字符串“部门编号 like '01'”到类型“Long”的转换无效 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65339) |
-- 作者:lzzhx -- 发布时间:2015/3/13 22:53:00 -- 从字符串“部门编号 like '01'”到类型“Long”的转换无效 请教: 窗口中用的是 SQLTable 下面代码执行出错 Dim a As String = e.Form.Controls("借用标签").text If e.DataCol.Name = "部门" Then Dim dr As DataRow dr = e.DataTable.Find("部门编号 like \'" & a & "\'" And "len(部门编号) = \'" & len(a) + 3 & "\'" And "部门 = \'" & e.NewValue & "\'") End If 错误信息如下: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2014.11.11.1 错误所在事件:表,部门管理_Table1,DataColChanged 详细错误信息: 调用的目标发生了异常。 从字符串“部门编号 like \'01\'”到类型“Long”的转换无效。 输入字符串的格式不正确。 |
-- 作者:lzzhx -- 发布时间:2015/3/13 22:53:00 -- 部门 和 部门编号 字段全是字符型 |
-- 作者:e-png -- 发布时间:2015/3/13 23:04:00 -- 1、再检查字段类型 2、"部门编号 like \'" & a & "\'" 改为: "部门编号 like \'*" & a & "*\'" |
-- 作者:lzzhx -- 发布时间:2015/3/13 23:08:00 -- 字段类型没有问题 dr = e.DataTable.Find("部门编号 like \'" & a & "\'" And "len(部门编号) = \'" & len(a) + 3 & "\'" And "部门 = \'" & e.NewValue & "\'") 上面三个条件只选任一个条件都没有问题,连在一起就不行了
|
-- 作者:lzzhx -- 发布时间:2015/3/13 23:13:00 -- 字段类型没有问题 dr = e.DataTable.Find("部门编号 like \'" & a & "\'" And "len(部门编号) = \'" & len(a) + 3 & "\'" And "部门 = \'" & e.NewValue & "\'") 上面三个条件只选任一个条件都没有问题,只要任选两个条件就不行了
|
-- 作者:e-png -- 发布时间:2015/3/13 23:29:00 -- 试试: dr = e.DataTable.Find("部门编号 like \'*" & a & "*\' And len(部门编号) = \'" & len(a) + 3 & "\' And 部门 = \'" & e.NewValue & "\'") |
-- 作者:lzzhx -- 发布时间:2015/3/13 23:47:00 -- 这样做代码执行不出错了,但结果不是我想要的。我的目的是要判断在一个部门中增加一个子部门后,该子部门不能在本部门中重复,请老师再看看 |
-- 作者:lzzhx -- 发布时间:2015/3/14 1:45:00 -- 问题已解决,原来将代码放在 [ DataColChanged某一列的内容被更改后执行,此时列的内容已经是更改后的值] 中,达不到要求,后将代码放在 [ ValidateEdit 结束编辑单元格前执行,通常用于验证输入的内容。] 中就可以。 但不知道原因是什么? |
-- 作者:Bin -- 发布时间:2015/3/14 8:44:00 -- Like要有模糊匹配符 |