2 votes

OleDbException (0x80004005) : Erreur non spécifiée ?

J'ai créé un bouton ( Next ) pour naviguer dans un tableau appelé CHAPTERS ;

Mon problème est que le bouton fonctionne deux, et parfois trois fois. Après cela, j'obtiens [Erreur non spécifiée].

Voici mon code :

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

Gracias.

UPDATES :

Cette connecter y lecture dans mon Connexion.vb fichier :

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

1voto

MusiGenesis Points 49273

Votre problème est probablement que vous ne fermez pas/ne disposez pas de votre OleDbDataReader. Le site Response.Redirect vous permet de passer à une autre page sans fermer le lecteur de données ouvert.

Essayez de modifier votre dernier morceau de code comme ceci :

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 

Mise à jour : Il serait évidemment utile que vous fournissiez plus d'informations, comme par exemple la ligne de code exacte qui déclenche l'exception dans cet exemple.

0voto

Garett Points 9597

Je ne sais pas si vous avez déjà vu ceci artículo mais cela peut être utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X