如何修复此错误索引超出范围异常 [英] how to fix this error index out of range exception
问题描述
Private Sub ToolStripMenuItemMajuorTrial_Click(sender As Object,e As EventArgs)Handles ToolStripMenuItemMajuroTrail.Click
Dim basestring As String = _
SELECT mamt,macd,minpdth,mopendt,mmat,&_
mlactdt,mbranch,mufe,minsr,hname,msource,mfee,&_
mint ,mpmt,mhold,mtype,mwatch,macct,mcbal,&_
racct,ramt,rcbal,rdate,&_
rcode,rref,hhold &_
FROM Note INNER JOIN&_
Holder ON Note.mhold = Holder.hhold INNER JOIN&_
LTrans ON Note.macct = LTrans.racct&_
Where(rdate不为空)和(mwatch ='O')和rdate介于'&DateTimePicker1.Text&'和'&DateTimePicker2.Text&'AND MCBAL> 0和MAMTPD> 0&_
按'rdate'排序
Dim tsqlCommand As String =的String.Format(卑鄙ring,DateTimePicker1.Text,DateTimePicker2.Text.ToString)
Dim ClipperConnectionstring As String = String.Format(basestring.ToString)= _
My.Settings.SQLConnection
尝试
使用cn作为新数据.SqlClient.SqlConnection(connectionString)
cn.Open()
使用cmd作为新Data.SqlClient.SqlCommand(tsqlCommand,cn)
Dim rdr As Data.SqlClient.SqlDataReader = cmd.ExecuteReader
如果rdr .HasRows然后
'TITLE
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf )
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&_
&Holder&_
&Note&_
&BorrowerName&_
&金额&_
和余额&_
&OpenDate&_
&PmtDate&_
&Int&_
和代码&_
&来源&_
&观看&_
&类型&_
&Freq&_
&Branch&_
vbCrLf)
Me.RichTextBoxMain.AppendText(--- -------------------------------------------------- -------------------------------------------------- -----------------------------&vbCrLf)
Dim reportline As String ={0, 3} {1,-5:000000} {2,-8} {3,-27} {4,12:C} {5,12:C} {6,12:d} {7,10:d} {8,5:C} {9,5} {10,5} {11,7} {12,7} {13,7} {14,7}&vbCrLf
Dim desc作为String =
昏暗的runbal As Double
Dim interestpaid As Double
昏暗金额为双倍
昏暗付款双倍
昏暗收到双倍= 0.0R
Dim paid As Double = 0.0R
Dim count As Integer = 1I
'循环
虽然rdr.Read
My.Application.DoEvents()
Me.Cursor = Cursors.Arrow
如果rdr(Code)=1那么'新贷款(荷兰盾)
runbal = rdr(金额)
desc =NL
ElseIf rdr(代码)= 7然后'校长付费(PP)
runbal - = rdr(金额)
desc =PP
ElseIf rdr(Code)=C然后'Principal Added(PA)
runbal + = rdr(金额)
desc =PA
ElseIf rdr(代码)=8然后'延迟加费
desc =L +
结束如果
如果rdr(代码)=5那么
interestpaid = interestpaid + rdr(金额)'利息支付
desc =InPaid-
ElseIf rdr(代码)=3然后'付款
count = count + 1
desc =PMT
ElseIf rdr(代码)=2然后'保险购买
desc =I + >
ElseIf rdr(代码)=4然后'保险支付
desc =我 -
ElseIf rdr(代码)= 6然后'延迟收费支付
desc =L-
ElseIf rdr(代码)=8然后'延迟加费
desc =L +
结束如果
付款=金额 - runbal
我。 RichTextBoxMain.AppendText(_
String.Format(reportline,_
rdr(holder),rdr(mact),rdr(hname),rdr (mamt),rdr(mcbal),rdr(OpenDate),rdr(PmtDate),rdr(Int),rdr(Code),rdr(Watch),rdr( source),rdr(type),rdr(freq),rdr(branch),_
vbCrLf))
结束时
Me.RichTextBoxMain.AppendText(--------------- -------------------------------------------------- -------------------------------------------------- -----------------&vbCrLf
Me.RichTextBoxMain.AppendText(HISTORY SUMMARY:&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(Amount =&Amount.ToString(C)&vbCrLf)
Me.RichTextBoxMain.AppendText(Payment Amount =&paid.ToString(C)&vbCrLf)
Me.RichTextBoxMain.AppendText(Interest Amount =&interestpaid.ToString(C) )&bbCrLf)
Me.RichTextBoxMain.AppendText(Unpaid Amount =&runbal.ToString(C)&vbCrLf)
结束如果
结束使用
结束使用
Catch ex As Exception
MsgBox(ERROR:+ ex.ToString)
结束尝试
结束Sub
Private Sub ToolStripMenuItemMajuorTrial_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemMajuroTrail.Click
Dim basestring As String = _
" SELECT mamt, macd, minpdth, mopendt, mmat," & _
" mlactdt, mbranch, mufe, minsr, hname, msource, mfee, " & _
" mint, mpmt, mhold, mtype, mwatch, macct, mcbal, " & _
" racct, ramt, rcbal, rdate, " & _
" rcode, rref, hhold " & _
" FROM Note INNER JOIN" & _
" Holder ON Note.mhold = Holder.hhold INNER JOIN " & _
" LTrans ON Note.macct = LTrans.racct " & _
" Where (rdate is not null) and (mwatch = 'O') and rdate between '" & DateTimePicker1.Text & "' and '" & DateTimePicker2.Text & "' AND MCBAL > 0 AND MAMTPD > 0" & _
" order by 'rdate'"
Dim tsqlCommand As String = String.Format(basestring, DateTimePicker1.Text, DateTimePicker2.Text.ToString)
Dim ClipperConnectionstring As String = String.Format(basestring.ToString) = _
My.Settings.SQLConnection
Try
Using cn As New Data.SqlClient.SqlConnection(connectionString)
cn.Open()
Using cmd As New Data.SqlClient.SqlCommand(tsqlCommand, cn)
Dim rdr As Data.SqlClient.SqlDataReader = cmd.ExecuteReader
If rdr.HasRows Then
'TITLE
Me.RichTextBoxMain.AppendText(" " & vbCrLf)
Me.RichTextBoxMain.AppendText(" " & vbCrLf)
Me.RichTextBoxMain.AppendText(" " & vbCrLf)
Me.RichTextBoxMain.AppendText("" & vbCrLf)
Me.RichTextBoxMain.AppendText("" & vbCrLf)
Me.RichTextBoxMain.AppendText("" & _
" " & "Holder" & _
" " & " Note" & _
" " & " BorrowerName" & _
" " & " Amount" & _
" " & " Balance" & _
" " & " OpenDate" & _
" " & " PmtDate" & _
" " & " Int" & _
" " & " Code" & _
" " & " Source" & _
" " & " Watch" & _
" " & " Type" & _
" " & " Freq" & _
" " & " Branch" & _
vbCrLf)
Me.RichTextBoxMain.AppendText("------------------------------------------------------------------------------------------------------------------------------------" & vbCrLf)
Dim reportline As String = "{0,3} {1,-5:000000} {2,-8} {3,-27} {4,12:C} {5,12:C} {6,12:d} {7,10:d} {8,5:C} {9,5} {10,5} {11,7} {12,7} {13,7} {14,7}" & vbCrLf
Dim desc As String = ""
Dim runbal As Double
Dim interestpaid As Double
Dim Amount As Double
Dim payment As Double
Dim recieved As Double = 0.0R
Dim paid As Double = 0.0R
Dim count As Integer = 1I
'loop
While rdr.Read
My.Application.DoEvents()
Me.Cursor = Cursors.Arrow
If rdr("Code") = "1" Then 'New Loan (NL)
runbal = rdr("Amount")
desc = "NL"
ElseIf rdr("Code") = "7" Then 'Principal Paid (PP)
runbal -= rdr("Amount")
desc = "PP"
ElseIf rdr("Code") = "C" Then 'Principal Added (PA)
runbal += rdr("Amount")
desc = "PA"
ElseIf rdr("Code") = "8" Then 'Late Fee Added
desc = "L+"
End If
If rdr("Code") = "5" Then
interestpaid = interestpaid + rdr("Amount") 'Interest Paid
desc = "InPaid-"
ElseIf rdr("Code") = "3" Then 'Payment
count = count + 1
desc = "PMT"
ElseIf rdr("Code") = "2" Then 'Insurance Purchase
desc = "I+"
ElseIf rdr("Code") = "4" Then 'Insurance Paid
desc = "I-"
ElseIf rdr("Code") = "6" Then 'Late Fee Paid
desc = "L-"
ElseIf rdr("Code") = "8" Then 'Late Fee Added
desc = "L+"
End If
payment = Amount - runbal
Me.RichTextBoxMain.AppendText( _
String.Format(reportline, _
rdr("holder"), rdr("mact"), rdr("hname"), rdr("mamt"), rdr("mcbal"), rdr("OpenDate"), rdr("PmtDate"), rdr("Int"), rdr("Code"), rdr("Watch"), rdr("source"), rdr("type"), rdr("freq"), rdr("branch"), _
vbCrLf))
End While
Me.RichTextBoxMain.AppendText("------------------------------------------------------------------------------------------------------------------------------------" & vbCrLf)
Me.RichTextBoxMain.AppendText("HISTORY SUMMARY:" & vbCrLf)
Me.RichTextBoxMain.AppendText("" & vbCrLf)
Me.RichTextBoxMain.AppendText(" Amount = " & Amount.ToString("C") & vbCrLf)
Me.RichTextBoxMain.AppendText("Payment Amount = " & paid.ToString("C") & vbCrLf)
Me.RichTextBoxMain.AppendText("Interest Amount = " & interestpaid.ToString("C") & vbCrLf)
Me.RichTextBoxMain.AppendText("Unpaid Amount = " & runbal.ToString("C") & vbCrLf)
End If
End Using
End Using
Catch ex As Exception
MsgBox("ERROR: " + ex.ToString)
End Try
End Sub
推荐答案
检查字段例如,在记录数据读取器中代码,金额等与查询中返回的相同。
参考检查索引超出范围异常 [ ^ ]。
Check that the fields in the record data reader for e.g. Code, Amount etc are the same as returned in the query.
For reference check Index Out Of Range Exception[^].
Private Sub ToolStripMenuItemMajuorTrial_Click(sender As Object,e As EventArgs)Handles ToolStripMenuItemMajuroTrail.Click
Dim basestring As String = _
SELECT mamt,macd,minpdth,mopendt,mmat,mamtpd,&_
mlactdt,mbranch,mufe ,minsr,hname,msource,mfee,&_
mint,mpmt,mhold,mtype,mwatch,macct,mcbal,mfreq,&_
racct ,ramt,rcbal,rdate,&_
rcode,rref,hhold&_
FROM Note INNER JOIN&_
持有人ON Note.mhold = Holder.hhold INNER JOIN&_
LTrans ON Note.macct = LTrans.racct&_
mwatch ='O'和mopendt在'&DateTimePicker1.Text&'和'&DateTimePicker2之间。文字&'AND MCBAL> 0&_
按'mopendt'排序'
Dim tsqlCommand As String = String.Format(basestring,DateTimePicker1.Text,DateTimePicker2.Text.ToString)
Dim ClipperConnectionstring As String = String.Format(basestring.ToString)= _
My.Settings.SQLConnection
尝试
使用cn作为新数据.SqlClient.SqlConnection(connectionString)
cn.Open()
使用cmd作为新Data.SqlClient。 SqlCommand(tsqlCommand,cn)
Dim rdr As Data.SqlClient.SqlDataReader = cmd.ExecuteReader
如果rdr.HasRows那么
'TITLE
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)< br $>
Me.RichTextBoxMain.AppendText(&_
&Holder&_
&注意&_
&BorrowerName&_
&金额&_
&余额&_
&OpenDate&_
&PmtDate&_
&Int&_
&代码&_
&来源&_
&观看&_
&Type&_
&Freq&_
&Branch&_
vbCrLf)
Me.RichTextBoxMain.AppendText(------------------------------- -------------------------------------------------- -------------------------------------------------- - &vbCrLf
Dim reportline As String ={0,3} {1,-5:000000} {2,-8} {3,-27} {4,12:C } {5,12:C} {6,12:d} {7,10:d} {8,5:C} {9,5} {10,5} {11,7} {12,7} { 13,7} {14,7}&vbCrLf
Dim desc As String =
Dim runbal As Double
Dim interestpaid As Double
Dim Amount Double Double
Dim payment As Double
Dim recieved当Double = 0.0R
Dim paid As Double = 0.0R
Dim count As Integer = 1I
'循环
虽然rdr.Read
My.Application.DoEvents()
Me.Cursor =游标.Arrow
如果rdr(rCode)=1那么'新贷款(NL)
runbal = rdr(ramt)
desc =NL
ElseIf rdr(rCode)=7然后'校长付费(PP)
runbal - = rdr(ramt)
desc =PP
ElseIf rdr(rCode)=C然后'Principal Added(PA)
runbal + = rdr(ramt)
desc =PA
ElseIf rdr(rCode)=8然后'晚'费用增加
desc =L +
结束如果
如果rdr(rCode)= 5然后
interestpaid = interestpaid + rdr(ramt)'利息支付
desc =InPaid-
ElseIf rdr(rCode)=3然后'付款
count = count + 1
desc =PMT
Els eIf rdr(rCode)=2然后'保险购买
desc =我+
ElseIf rdr(rCode)=4然后'保险支付
desc =我 -
ElseIf rdr(rCode)=6然后'延迟收费支付
desc = L-
ElseIf rdr(rCode)=8然后'延迟加费
desc =L +
结束如果
payment =金额 - runbal
Me.RichTextBoxMain.AppendText(_
String.Format(reportline, _
rdr(mhold),rdr(macct),rdr(hname),rdr(mamt),rdr(mcbal),rdr(mopendt) ,rdr(mpmt),rdr(mint),rdr(rcode),rdr(m观看),rdr(msource),rdr(mtype),rdr(mfreq),rdr(mbranch),_
vbCrLf))
结束时
Me.RichTextBoxMain.AppendText(--------------- -------------------------------------------------- -------------------------------------------------- -----------------&vbCrLf
Me.RichTextBoxMain.AppendText(HISTORY SUMMARY:&vbCrLf)
Me.RichTextBoxMain.AppendText(&vbCrLf)
Me.RichTextBoxMain.AppendText(Amount =&Amount.ToString(C)&vbCrLf)
Me.RichTextBoxMain.AppendText(Payment Amount =&paid.ToString(C)&vbCrLf)
Me.RichTextBoxMain.AppendText(Interest Amount =&interestpaid.ToString(C) )&vbCrLf)
Me.RichTextBoxMain.AppendText(Unp aid Amount =&runbal.ToString(C)&vbCrLf)
结束如果
结束使用
结束使用
Catch ex As Exception
MsgBox(ERROR:+ ex.ToString)
结束尝试
End Sub
Private Sub ToolStripMenuItemMajuorTrial_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemMajuroTrail.Click
Dim basestring As String = _
" SELECT mamt, macd, minpdth, mopendt, mmat, mamtpd," & _
" mlactdt, mbranch, mufe, minsr, hname, msource, mfee, " & _
" mint, mpmt, mhold, mtype, mwatch, macct, mcbal, mfreq, " & _
" racct, ramt, rcbal, rdate, " & _
" rcode, rref, hhold " & _
" FROM Note INNER JOIN" & _
" Holder ON Note.mhold = Holder.hhold INNER JOIN " & _
" LTrans ON Note.macct = LTrans.racct " & _
" Where mwatch = 'O' and mopendt between '" & DateTimePicker1.Text & "' and '" & DateTimePicker2.Text & "' AND MCBAL > 0 " & _
" order by 'mopendt'"
Dim tsqlCommand As String = String.Format(basestring, DateTimePicker1.Text, DateTimePicker2.Text.ToString)
Dim ClipperConnectionstring As String = String.Format(basestring.ToString) = _
My.Settings.SQLConnection
Try
Using cn As New Data.SqlClient.SqlConnection(connectionString)
cn.Open()
Using cmd As New Data.SqlClient.SqlCommand(tsqlCommand, cn)
Dim rdr As Data.SqlClient.SqlDataReader = cmd.ExecuteReader
If rdr.HasRows Then
'TITLE
Me.RichTextBoxMain.AppendText(" " & vbCrLf)
Me.RichTextBoxMain.AppendText(" " & vbCrLf)
Me.RichTextBoxMain.AppendText(" " & vbCrLf)
Me.RichTextBoxMain.AppendText("" & vbCrLf)
Me.RichTextBoxMain.AppendText("" & vbCrLf)
Me.RichTextBoxMain.AppendText("" & _
" " & "Holder" & _
" " & " Note" & _
" " & " BorrowerName" & _
" " & " Amount" & _
" " & " Balance" & _
" " & " OpenDate" & _
" " & " PmtDate" & _
" " & " Int" & _
" " & " Code" & _
" " & " Source" & _
" " & " Watch" & _
" " & " Type" & _
" " & " Freq" & _
" " & " Branch" & _
vbCrLf)
Me.RichTextBoxMain.AppendText("------------------------------------------------------------------------------------------------------------------------------------" & vbCrLf)
Dim reportline As String = "{0,3} {1,-5:000000} {2,-8} {3,-27} {4,12:C} {5,12:C} {6,12:d} {7,10:d} {8,5:C} {9,5} {10,5} {11,7} {12,7} {13,7} {14,7}" & vbCrLf
Dim desc As String = ""
Dim runbal As Double
Dim interestpaid As Double
Dim Amount As Double
Dim payment As Double
Dim recieved As Double = 0.0R
Dim paid As Double = 0.0R
Dim count As Integer = 1I
'loop
While rdr.Read
My.Application.DoEvents()
Me.Cursor = Cursors.Arrow
If rdr("rCode") = "1" Then 'New Loan (NL)
runbal = rdr("ramt")
desc = "NL"
ElseIf rdr("rCode") = "7" Then 'Principal Paid (PP)
runbal -= rdr("ramt")
desc = "PP"
ElseIf rdr("rCode") = "C" Then 'Principal Added (PA)
runbal += rdr("ramt")
desc = "PA"
ElseIf rdr("rCode") = "8" Then 'Late Fee Added
desc = "L+"
End If
If rdr("rCode") = "5" Then
interestpaid = interestpaid + rdr("ramt") 'Interest Paid
desc = "InPaid-"
ElseIf rdr("rCode") = "3" Then 'Payment
count = count + 1
desc = "PMT"
ElseIf rdr("rCode") = "2" Then 'Insurance Purchase
desc = "I+"
ElseIf rdr("rCode") = "4" Then 'Insurance Paid
desc = "I-"
ElseIf rdr("rCode") = "6" Then 'Late Fee Paid
desc = "L-"
ElseIf rdr("rCode") = "8" Then 'Late Fee Added
desc = "L+"
End If
payment = Amount - runbal
Me.RichTextBoxMain.AppendText( _
String.Format(reportline, _
rdr("mhold"), rdr("macct"), rdr("hname"), rdr("mamt"), rdr("mcbal"), rdr("mopendt"), rdr("mpmt"), rdr("mint"), rdr("rcode"), rdr("mwatch"), rdr("msource"), rdr("mtype"), rdr("mfreq"), rdr("mbranch"), _
vbCrLf))
End While
Me.RichTextBoxMain.AppendText("------------------------------------------------------------------------------------------------------------------------------------" & vbCrLf)
Me.RichTextBoxMain.AppendText("HISTORY SUMMARY:" & vbCrLf)
Me.RichTextBoxMain.AppendText("" & vbCrLf)
Me.RichTextBoxMain.AppendText(" Amount = " & Amount.ToString("C") & vbCrLf)
Me.RichTextBoxMain.AppendText("Payment Amount = " & paid.ToString("C") & vbCrLf)
Me.RichTextBoxMain.AppendText("Interest Amount = " & interestpaid.ToString("C") & vbCrLf)
Me.RichTextBoxMain.AppendText("Unpaid Amount = " & runbal.ToString("C") & vbCrLf)
End If
End Using
End Using
Catch ex As Exception
MsgBox("ERROR: " + ex.ToString)
End Try
End Sub
这篇关于如何修复此错误索引超出范围异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!