将 Crystal 报告连接到 SQL 服务器时出现问题

Problem with connecting Crystal Reports to SQL Server

我有问题

我是一名项目工作者vb.net 2015 with sql

我清空项目后在客户端试用了项目

crystal 报告

显示报告时出现错误
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim rpt As New WaznRep
    For Each DSC As CrystalDecisions.Shared.IConnectionInfo In rpt.DataSourceConnections
        DSC.SetLogon(muser, mpass)
        DSC.SetConnection(mserver, mdb, False)
    Next

    ReportV1.CrystalReportViewer1.ReportSource = rpt
    ReportV1.ShowDialog()
End Sub

mserver = 服务器

mdb = 数据库名称

muser = 用户名sql

mpass = sql 密码

它们是从文本文件中检索的

当运行客户端不打开报表时的程序

出现此消息且数据库名称为空

我用花药连接

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Application.DoEvents()
    Dim rpt1 As New WaznRep
    Dim ConInfo As New CrystalDecisions.Shared.TableLogOnInfo
    ConInfo.ConnectionInfo.ServerName = mserver
    ConInfo.ConnectionInfo.DatabaseName = mdb
    ConInfo.ConnectionInfo.UserID = muser
    ConInfo.ConnectionInfo.Password = mpass
    rpt1.Database.Tables(0).ApplyLogOnInfo(ConInfo)
    ReportV1.CrystalReportViewer1.ReportSource = rpt1
    ReportV1.CrystalReportViewer1.RefreshReport()
    ReportV1.ShowDialog()
End Sub

花药

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim cryRpt As New ReportDocument
    Dim crtableLogoninfos As New TableLogOnInfos
    Dim crtableLogoninfo As New TableLogOnInfo
    Dim crConnectionInfo As New ConnectionInfo
    Dim CrTables As Tables
    Dim CrTable As Table
    Dim rpt1 As New WaznRep
    cryRpt.Load("D:.rpt")

    With crConnectionInfo
        .ServerName = mserver
        .DatabaseName = mdb
        .UserID = muser
        .Password = mpass
    End With

    CrTables = cryRpt.Database.Tables
    For Each CrTable In CrTables
        crtableLogoninfo = CrTable.LogOnInfo
        crtableLogoninfo.ConnectionInfo = crConnectionInfo
        CrTable.ApplyLogOnInfo(crtableLogoninfo)
    Next
    ReportV1.CrystalReportViewer1.ReportSource = cryRpt
    ReportV1.CrystalReportViewer1.RefreshReport()
    ReportV1.ShowDialog()
End Sub

所有代码都可以在我的电脑上运行但不能在客户端电脑上运行

在我的PC和客户端PC相同Crystal报告版本

编辑----

 Dim rpt As New WaznRep
    For Each DSC As CrystalDecisions.Shared.IConnectionInfo In rpt.DataSourceConnections
        DSC.SetConnection(mserver, mdb, False)
        DSC.SetLogon(muser, mpass)

    Next
    rpt.SetDatabaseLogon(muser, mpass)

    ReportV1.CrystalReportViewer1.ReportSource = rpt
    ReportV1.ShowDialog()

当我使用集成安全时=false

数据库名称未显示

当我使用集成安全时=true

 Dim rpt As New WaznRep
    For Each DSC As CrystalDecisions.Shared.IConnectionInfo In rpt.DataSourceConnections
        DSC.SetConnection(mserver, mdb, True)
        DSC.SetLogon(muser, mpass)

    Next
    rpt.SetDatabaseLogon(muser, mpass)

    ReportV1.CrystalReportViewer1.ReportSource = rpt
    ReportV1.ShowDialog()

数据库名称显示但在客户端 pc 中不起作用

问题已解决

必须安装 NATIVE SQL 驱动程序才能访问 Crystal 报告。