以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这段代码为什么老是报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122098) |
-- 作者:rjh4078 -- 发布时间:2018/7/18 22:01:00 -- 这段代码为什么老是报错 .NET Framework 版本:2.0.50727.8933 Foxtable 版本:2018.7.9.1 错误所在事件:窗口,付款单,Button2,Click 详细错误信息: 索引超出了数组界限。 messagebox.show("1") DataTables("付款明细").find("来源单据=\'应付对账单\' and 付款单号=\'" & .current("付款单号") & "\' and ID=\'" & r("_identify") & "\'") messagebox.show("2") 1能弹出 2不行 非常奇怪 找了很久找不到问题 字符串拼接没问题啊 |
-- 作者:rjh4078 -- 发布时间:2018/7/18 22:02:00 -- With Tables("付款单") If .current IsNot Nothing Then If Tables("付款单_t1").GetCheckedRows.count>0 Then MessageBox.show("1") For Each r As Row In Tables("付款单_t1").GetCheckedRows MessageBox.show("2") Dim dr As DataRow=DataTables("付款明细").find("来源单据=\'应付对账单\' and 付款单号=\'" & .current("付款单号") & "\' and ID=\'" & r("_identify") & "\'") MessageBox.show("3") If dr Is Nothing Then 1 2能弹出 3之前就报错
|
-- 作者:有点甜 -- 发布时间:2018/7/18 22:06:00 -- 单纯看代码,没有任何问题。
你试试贴出完整代码。 |
-- 作者:rjh4078 -- 发布时间:2018/7/19 6:18:00 -- With Tables("付款单") If .current IsNot Nothing Then If Tables("付款单_t1").GetCheckedRows.count>0 Then MessageBox.show("1") For Each r As Row In Tables("付款单_t1").GetCheckedRows MessageBox.show("2") Dim dr As DataRow=DataTables("付款明细").find("来源单据=\'应付对账单\' and 付款单号=\'" & .current("付款单号") & "\' and ID=\'" & r("_identify") & "\'") MessageBox.show("3") If dr Is Nothing Then Dim rr As Row=Tables("付款单.付款明细").AddNew rr("应付对账单号")=r("应付对账单号") rr("来源单据")="应付对账单" rr("记账单据")=r("来源单据") rr("ID")=r("_identify") rr("待核销金额")=r("对账金额")-r("已核销金额") rr("单号")=r("单号") rr("物料名称")=r("物料名称") Else MessageBox.show("同一供应商付款明细不能在同一付款单分开编辑!!","提示!") Return End If Next e.Form.Controls("TabControl2").Selectedindex=0 Else MessageBox.show("没有选中任何记录!") End If End If End With
|
-- 作者:blackzhu -- 发布时间:2018/7/19 8:53:00 -- and ID=\'" & r("_identify") & "\'") 你这个是数值的吧,数值当字符串在处理条件? |
-- 作者:有点甜 -- 发布时间:2018/7/19 9:05:00 -- 肯定不是你标记的地方有错。假如你把代码改成
Dim dr As DataRow = Nothing
然后执行,是否还会报错? |
-- 作者:rjh4078 -- 发布时间:2018/7/19 9:27:00 -- 以下是引用有点甜在2018/7/19 9:05:00的发言: 肯定不是你标记的地方有错。假如你把代码改成
Dim dr As DataRow = Nothing
然后执行,是否还会报错? 代码没问题 我把bin文件夹删除了竟然好了 |