以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  错误提醒  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140482)

--  作者:vimin
--  发布时间:2019/9/6 14:31:00
--  错误提醒
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.8.3.1
错误所在事件:表,DeliveryN_Table1,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引超出了数组界限。

我开一个窗口时总是收到以上的错误提醒。我在DataColChanged事件只要把以下标红的代码拿掉便没有问题:
If e.DataCol.Name = "货物编号" Then
    If e.NewValue.length > 19 Then
        Dim sql As new SQLCommand
        Dim lsb As DataTable
        sql.C
        sql.CommandText = "se/ect * fr0m {产品基础货号表} where 基础货号 = \'" & e.NewValue.Substring(0,10) & "\'"
        lsb = sql.ExecuteReader
        if lsb.DataRows(0)("毛重") = 0 then
xxxx
endif
endif
endif

不管我已什么代码,只要用lsb.datarows(0)("毛重"),去取一下重量,变会有这样的提示。
刚开始我以为是产品基础货号表,[毛重]的值是NULL造成的,但我把数据都填成了0,还是一样的提醒。
请问我是哪里问题?

--  作者:有点蓝
--  发布时间:2019/9/6 14:47:00
--  
If e.DataCol.Name = "货物编号" Then
    If e.NewValue > "" AndAlso e.NewValue.length > 19 Then
        Dim sql As new SQLCommand
        Dim lsb As DataTable
        sql.C
        sql.CommandText = "se/ect * fr0m {产品基础货号表} where 基础货号 = \'" & e.NewValue.Substring(0,10) & "\'"
        lsb = sql.ExecuteReader
        If lsb.DataRows.Count > 0
            If lsb.DataRows(0)("毛重") = 0 Then