如何修复此错误索引超出范围异常 [英] how to fix this error index out of range exception

查看:144
本文介绍了如何修复此错误索引超出范围异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆