Vb.net 将此ADODB crystal报告转换为OLEDB

Vb.net 将此ADODB crystal报告转换为OLEDB,vb.net,ms-access,crystal-reports,oledb,adodb,Vb.net,Ms Access,Crystal Reports,Oledb,Adodb,我不知道如何将ADODB转换成OLEDB。 我的数据表、记录集和记录计数有问题。 我真的不知道如何把它转换成OLEDB ADODB模块 Public con As New ADODB.Connection Public rec As New ADODB.Recordset Public flag As New Integer Public temp As New Integer Public Sub connect() Dim path As String path = App

我不知道如何将ADODB转换成OLEDB。 我的数据表、记录集和记录计数有问题。 我真的不知道如何把它转换成OLEDB

ADODB模块

Public con As New ADODB.Connection
Public rec As New ADODB.Recordset
Public flag As New Integer
Public temp As New Integer

Public Sub connect()
    Dim path As String
    path = Application.StartupPath & "\dbPSITSms.mdb"
    con.Open("provider=microsoft.jet.OLEDB.4.0;data source = " & path)
End Sub
ADODB CrystalReportViewer1表单

Private Sub CrystalReport_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

    Dim dt As New DataTable
    dt.Columns.Add("psitscode")
    dt.Columns.Add("studnum")
    dt.Columns.Add("sy")
    dt.Columns.Add("total")
    connect()
    rec.Open("SELECT * FROM tableTransaction", con, 3, 3)
    If rec.RecordCount <> 0 Then
        Do Until rec.EOF
            dt.Rows.Add(rec("psitscode").Value, rec("studnum").Value, rec("sy").Value, rec("total").Value)
            rec.MoveNext()
        Loop
    End If
    rec.Close()
    con.Close()

    Dim rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument
    rptDoc = New CrystalReport1
    rptDoc.SetDataSource(dt)
    Me.CrystalReportViewer.ReportSource = rptDoc
    Me.CrystalReportViewer.Refresh()
End Sub

请帮助我。这将是ADODB代码的逐行转换(我忽略了您的OLEDB内容,我使用您的代码创建DataTable并设置报告,但插入OLEDB语法,以与ADODB相同的模式填充它)

“使用”语句确保物品在使用后得到清理和处置

    Dim dt As New DataTable
    dt.Columns.Add("psitscode")
    dt.Columns.Add("studnum")
    dt.Columns.Add("sy")
    dt.Columns.Add("total")

    Using conn As New OleDbConnection("Your OleDb Connection String")
        conn.Open()

        Using cmd As OleDbCommand = conn.CreateCommand
            cmd.CommandText = "SELECT * FROM tableTransaction"

            Using dr As OleDbDataReader = cmd.ExecuteReader
                While dr.Read
                    dt.Rows.Add(dr("psitscode"), dr("studnum"), dr("sy"), dr("total").Value)
                End While

                dr.Close()
            End Using

        End Using

        conn.Close()
    End Using

    Dim rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument
    rptDoc = New CrystalReport1
    rptDoc.SetDataSource(dt)
    Me.CrystalReportViewer.ReportSource = rptDoc
    Me.CrystalReportViewer.Refresh()

你说,你有问题,但你没有说你有什么问题。到目前为止,您的问题属于“为什么此代码不工作”这一主题之外的问题。对我来说,看起来不错。我看不出有什么问题。你需要解释一下你在哪里遇到了什么问题对不起,先生,我指的是关于ADODB.recordset的问题。我的朋友,假设你没有写这个问题。继续读吧,如果你看到了,告诉我问题在哪里?“我有问题”不是问题。这是毫无疑问的。也许这就是没人回答的原因…啊,那怎么办。如何将ADODB转换为OLEDB?太广泛和基于观点-这是我能说的全部谢谢先生。我真的很感谢你的帮助。谢谢
    Dim dt As New DataTable
    dt.Columns.Add("psitscode")
    dt.Columns.Add("studnum")
    dt.Columns.Add("sy")
    dt.Columns.Add("total")

    Using conn As New OleDbConnection("Your OleDb Connection String")
        conn.Open()

        Using cmd As OleDbCommand = conn.CreateCommand
            cmd.CommandText = "SELECT * FROM tableTransaction"

            Using dr As OleDbDataReader = cmd.ExecuteReader
                While dr.Read
                    dt.Rows.Add(dr("psitscode"), dr("studnum"), dr("sy"), dr("total").Value)
                End While

                dr.Close()
            End Using

        End Using

        conn.Close()
    End Using

    Dim rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument
    rptDoc = New CrystalReport1
    rptDoc.SetDataSource(dt)
    Me.CrystalReportViewer.ReportSource = rptDoc
    Me.CrystalReportViewer.Refresh()