none
access db로 reportviewer를 만들면 OleDbException가 처리되지 않았습니다.라고 나옵니다. RRS feed

  • 질문

  • 비쥬얼 스튜디오 10을 이용해 vb프로그램을 연습하고 있습니다.

    access db를 이용해 MS- reportviewer를 이용해 리포트를 만들면 

    OleDbException가 처리되지 않았습니다.라고 나오고 그 아래에

    필요한 매개 변수중 한 개이상의 값이 주어지지 않았습니다.라고 에러 메세지가 나옵니다.

    sql db sdf 파일이나  mdf 파일은 문제없이 라포트가 만들어지는 데 access db(혹은 ole db)로 리포트를 만들려고 하면 위와 같은 에러메세지가 나오는 원인을 알고 싶습니다.

    리포트 폼 소스 는 아래외 깉습니다.

    Imports System.Data.OleDb

    Imports System.Data
    Imports System.Data.SqlClient
    Imports Microsoft.Reporting.WinForms

    Public Class 학생리포트

        Private Sub 학생리포트_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

            Me.야학이름TableAdapter.Fill(Me.야학운영DataSet.야학이름)
            Me.DataTable2TableAdapter.Fill(Me.야학운영DataSet.DataTable2)

            Me.ReportViewer1.RefreshReport()
        End Sub
    End Class



    2012년 10월 10일 수요일 오전 1:43

답변

  • 안녕하십니까? 민들레학 님,
    Microsoft TechNet의 Forum 사이트를 방문해 주셔서 감사합니다.

    현재 문의 하신 ”access db로 reportviewer를 만들면 OleDbException가 처리되지 않았습니다.라고 나옵니다." 대해 답변을 드리겠습니다.

    제 생각에는 아래와같이 OleDbException 클래스 을 이용해 보시면 좋을 것 같습니다.

    Public Sub ShowOleDbException()
        Dim mySelectQuery As String = "SELECT column1 FROM table1"
        Dim myConnection As New OleDbConnection _
           ("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=")
        Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
    
        Try
            myCommand.Connection.Open()
        Catch e As OleDbException
            Dim errorMessages As String
            Dim i As Integer
    
            For i = 0 To e.Errors.Count - 1
                errorMessages += "Index #" & i.ToString() & ControlChars.Cr _
                               & "Message: " & e.Errors(i).Message & ControlChars.Cr _
                               & "NativeError: " & e.Errors(i).NativeError & ControlChars.Cr _
                               & "Source: " & e.Errors(i).Source & ControlChars.Cr _
                               & "SQLState: " & e.Errors(i).SQLState & ControlChars.Cr
            Next i
    
           Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
           log.Source = "My Application"
           log.WriteEntry(errorMessages)
           Console.WriteLine("An exception occurred. Please contact your system administrator.")
        End Try
    End Sub
    

    [참고자료]
    OleDbException 클래스

    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

     

    • 답변으로 표시됨 민들레야학 2012년 10월 11일 목요일 오전 8:07
    2012년 10월 11일 목요일 오전 6:59
    중재자