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) 结束尝试 结束SubPrivate 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) 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 SubPrivate 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 这篇关于如何修复此错误索引超出范围异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!