以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 实在没找出这段代码有什么问题? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141424) |
-- 作者:旭日生 -- 发布时间:2019/9/28 19:35:00 -- 实在没找出这段代码有什么问题? 下面这段代码,如果没有 有颜色部分代码,完全正常。一旦有这段内容,则出现下面错误提示。问题是,这些代码之前也都使用过,完全正常。请版主帮助分析一下原因: If e.DataCol.Name = "列一" Then If e.DataRow.IsNull("列一") Then e.DataRow("列二") = Nothing ElseIf len(e.NewValue ) >= 3 Then e.DataRow("列一") = e.NewValue e.DataRow("列二") = e.NewValue.Substring(0,3) \'从表二中读取列三内容。 Dim dr3 As DataRow = DataTables("表二").Find("列一 = \'" & e.newValue & "\'") If dr3 Is Nothing Then e.DataRow("列三") = "错误" ElseIf dr3 IsNot Nothing Then e.DataRow("列三") = dr3("列三") End If
ElseIf len(e.NewValue ) < 3 Then e.DataRow("列一") = "错误" e.DataRow("列二") = "" End If End If
|
-- 作者:z769036165 -- 发布时间:2019/9/28 20:23:00 -- Substring(0,3) 这个的问题吧
|
-- 作者:有点蓝 -- 发布时间:2019/9/29 8:35:00 -- 列二和列三赋值后会不会触发其它事件? If e.DataCol.Name = "列一" Then If e.DataRow.IsNull("列一") Then e.DataRow("列二") = Nothing Else If len(e.NewValue ) >= 3 Then msgbox(e.NewValue) ‘出错时这里显示什么内容 e.DataRow("列二") = e.NewValue.Substring(0,3) \'从表二中读取列三内容. Dim dr3 As DataRow = DataTables("表二").Find("列一 = \'" & e.newValue & "\'") If dr3 Is Nothing Then e.DataRow("列三") = "错误" Else e.DataRow("列三") = dr3("列三") End If Else e.DataRow("列一") = "错误" e.DataRow("列二") = "" End If End If End If |
-- 作者:旭日生 -- 发布时间:2019/9/29 9:29:00 -- 确实如蓝版所言,因为其它地方有下面一行代码,违反了len(e.NewValue ) >= 3的逻辑。 e.DataRow("保管期限")="永久" OrElse e.DataRow("保管期限")="Y00"
|