加载水晶报告时提示数据库登录

时间:2015-12-15 01:25:27

标签: vb.net crystal-reports

每次我加载关于水晶的报告时,我都遇到了问题。总是要求数据库登录,但是当我输入我的密码(这是我的连接的密码)时,它总是说登录失败。

这是我的代码:

    Dim _ReportLogonInfos As New TableLogOnInfos
    Dim _ReportLogonInfo As New TableLogOnInfo
    Dim _ReportConInfo As New ConnectionInfo
    Dim _Tables As Tables
    Dim _Table As Table

    With _ReportConInfo
        .ServerName = "localhost"
        .DatabaseName = "database"
        .UserID = "root"
        .Password = "Qwerty123"
    End With
    Dim _Report As New rptPrntIss
    _Tables = _Report.Database.Tables
    For Each _Table In _Tables
        _ReportLogonInfo = _Table.LogOnInfo
        _ReportLogonInfo.ConnectionInfo = _ReportConInfo
        _Table.ApplyLogOnInfo(_ReportLogonInfo)

    Next
    CrystalReportViewer1.ReportSource = _Report

1 个答案:

答案 0 :(得分:0)

除了你设置的内容之外,我还设置了以下内容(抱歉这是在C#而不是VB.NET中 - 希望你能翻译):

1

        //SET DATASOURCE FOR EACH SUBREPORT IN REPORT
        foreach (CrystalDecisions.CrystalReports.Engine.Section section in CrystalReportSource2.ReportDocument.ReportDefinition.Sections)
        {
            // In each section we need to loop through all the reporting objects
            foreach (CrystalDecisions.CrystalReports.Engine.ReportObject reportObject in section.ReportObjects)
            {
                if (reportObject.Kind == ReportObjectKind.SubreportObject)
                {
                    SubreportObject subReport = (SubreportObject)reportObject;
                    ReportDocument subDocument = subReport.OpenSubreport(subReport.SubreportName);

                    foreach (CrystalDecisions.CrystalReports.Engine.Table table in subDocument.Database.Tables)
                    {
                        // Cache the logon info block
                        TableLogOnInfo logOnInfo = table.LogOnInfo;

                        // Set the connection
                        logOnInfo.ConnectionInfo = crConnectionInfo;

                        // Apply the connection to the table!
                        table.ApplyLogOnInfo(logOnInfo);
                    }
                }
            }
        }

2

        if (CrystalReportSource2.ReportDocument.DataSourceConnections.Count > 0)
            CrystalReportSource2.ReportDocument.DataSourceConnections[0].SetConnection(server, db, crystalUser, pwd);

3

        CrystalReportSource2.ReportDocument.SetDatabaseLogon(crystalUser, pwd, server, db);