System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.IndexOutOfRangeException: 索引超出了数组界限。
麻烦老师帮忙看看 主要是在台账中如果没有编号 就会出现这个……如果已经有了类似bazbdy001的编号就不会出现
当前代码:
Dim lb As String = dr("分类代码")
Dim idx As Integer
Dim cmd As New S QLC ommand
cmd.Con nect io nNa me = "主数据源"
cmd.CommandText = "Se lect * From 台账 where 分类代码 = '" & lb & "' And [_Identify] <>''"
Dim dt As DataTable = cmd.ExecuteReader()
Dim dr1 As DataRow = dt.DataRows(dt.DataRows.Count - 1) '获得最后一行
output.show(dr1("_Identify"))
If dr1("编号").StartsWith("BZZB" & lb) = False '如果单据编号前缀不符
cmd.CommandText = "sele ct Max(编号) from 台账 where 分类代码 = '" & lb & "' And [_Identify] <> " & dr1("_Identify")
Dim max As String
max = cmd.ExecuteScalar()
output.show(max)
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(6,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
dr("编号")=("BAZB" & lb & Format(idx,"000"))
dr.Save
End If
运行提示:
错误的事件名称项目,HttpRequest
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.IndexOutOfRangeException: 索引超出了数组界限。
在 eWebSer.form673_save_Ajax(Request rq)
--- 内部异常堆栈跟踪的结尾 ---
在 Microsoft.VisualBasic.CompilerServices.Symbols.Container.InvokeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags)
在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.CallMethod(Container BaseReference, String MethodName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, BindingFlags InvocationFlags, Boolean ReportErrors, ResolutionFailure& Failure)
在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.ObjectLateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
在 UserCode.HttpRequest(RequestEventArgs e)
2022-12-15 09:00:37