代码之家  ›  专栏  ›  技术社区  ›  Wassim AZIRAR

OLEDBEException(0x80004005):未指定错误?

  •  2
  • Wassim AZIRAR  · 技术社区  · 14 年前

    我创建了一个按钮( Next CHAPTERS ;

    我的问题是这个按钮可以工作两次,有时甚至三次。之后我得到了[NotSpecified error]。

    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 :

    这就是 connecter lecture 功能在我的 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
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   MusiGenesis    14 年前

    您的问题可能是没有关闭/处理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 
    

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