以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  无法在 System.Int32 和 System.String 上执行“=”操作  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143482)

--  作者:swindy
--  发布时间:2019/11/26 13:53:00
--  无法在 System.Int32 和 System.String 上执行“=”操作

出现以下提示:

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

 

以下代码,在DataColChanging

If e.DataCol.Name = "序号" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("序号 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此序号已经存在!")
        e.Cancel = True
    End If
End If


--  作者:有点蓝
--  发布时间:2019/11/26 13:55:00
--  
序号是数值型列?去掉单引号,字符列、日期列才需要使用单引号

dr = e.DataTable.Find("序号 = " & e.NewValue)

--  作者:swindy
--  发布时间:2019/11/26 14:03:00
--  

.NET Framework 版本:4.0.30319.17929
Foxtable 版本:2019.8.19.1
错误所在事件:表,图纸主表,DataColChanging
详细错误信息:
调用的目标发生了异常。
语法错误:“=”运算符后缺少操作数。

 

当“序号”栏空的时候就会出现以上错误, 怎么解决?


--  作者:有点蓝
--  发布时间:2019/11/26 14:20:00
--  
If e.DataCol.Name = "序号" andalso e.datarow.isnull("序号") = false Then