2

我创建了一个按钮 ( Next) 来在名为CHAPTERS; 的表中导航。

我的问题是按钮工作两次,有时是三次。之后我得到[未指定错误]。

这是我的代码:

Dim S As Integer = Integer.Parse(Request.QueryString("id"))
Dim RQ As String
Dim DR As OleDbDataReader
RQ = "SELECT ID_C FROM CHAPTRES"
DR = Connexion.lecture(RQ)
While DR.Read
    If DR.GetInt32(0) = S Then
            Exit While
        End If
    End While

    If DR.Read = True Then
        S = DR.GetInt32(0)
        Response.Redirect("Chapitre.aspx?id=" & S)
    Else   
        // End of records (stop reading)
    End If

谢谢。

UPDATES :

这是我的文件中的connecterandlecture函数:Connexion.vb

Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient

Public Class Connexion

Public Shared Function conecter() As OleDbConnection
    Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & System.AppDomain.CurrentDomain.BaseDirectory & "/Learning.mdb")
    MyConnexion.Open()
    Return MyConnexion
End Function

Public Shared Function lecture(ByVal requete As String) As OleDbDataReader
    Dim Mycommand As OleDbCommand = conecter().CreateCommand()
    Mycommand.CommandText = requete
    Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
    Return myReader

End Function
4

1 回答 1

1

您的问题可能是您没有关闭/处置您的 OleDbDataReader。该Response.Redirect调用将您带到另一个页面,而无需关闭打开的数据阅读器。

尝试将您的最后一段代码修改为:

If DR.Read = True Then 
    S = DR.GetInt32(0) 
    DR.Close()
    DR.Dispose()
    Response.Redirect("Chapitre.aspx?id=" & S) 
Else    
    // End of records (stop reading) 
End If 

更新: 如果您提供更多信息,这显然会有所帮助,例如本示例中的哪一行代码引发了异常。

于 2010-06-25T01:50:50.697 回答