2010-06-25 3 views
2

나는 CHAPTERS 테이블을 탐색하기 위해 버튼 (Next)을 만들었습니다.OleDbException (0x80004005) : 지정되지 않은 오류?

내 문제는 버튼이 2 번, 때로는 3 번 작동한다는 것입니다. 그 후에 [지정되지 않은 오류]가 표시됩니다.

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 :

이쪽 connecterlectureConnexion.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

귀하의 문제는 당신이 당신의 방법 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 

업데이트 : 당신은 어쩌면 정확히이 예에서는 어떤 코드의 라인은 예외를 던지고 같은 자세한 정보를 제공 한 경우 분명 도움이 될 것이다.

+0

여전히 문제가 있습니다 –

+0

@AZIRAR : 답변이 정확하지 않기 때문에 투표를 다운 투표 할 필요가 없습니다. 나는 일반적으로 다른 사람들을 속일 수있는 부정확 한 답변에 대한 하향 투표를 예약합니다. 귀하의 경우 현재 문제의 원인인지 여부에 관계없이 데이터 판독기를 종료해야합니다. – MusiGenesis

+0

datareader를 닫더라도 항상 동일한 오류가 발생합니다. –

관련 문제