Crystal reports Crystal report--登录参数错误无效

Crystal reports Crystal report--登录参数错误无效,crystal-reports,Crystal Reports,我有一个crystal report,它在我的本地机器上运行良好,但当我将它移动到服务器时,它给了我一个不正确的登录参数 代码如下。它是从.net应用程序调用的 Dim CR作为新的报告文档 Dim str As String = Application.StartupPath If PrintDialog1.ShowDialog() <> Windows.Forms.DialogResult.OK Then Exit Sub CR.Load(Applicat

我有一个crystal report,它在我的本地机器上运行良好,但当我将它移动到服务器时,它给了我一个不正确的登录参数

代码如下。它是从.net应用程序调用的

Dim CR作为新的报告文档

    Dim str As String = Application.StartupPath
    If PrintDialog1.ShowDialog() <> Windows.Forms.DialogResult.OK Then Exit Sub
    CR.Load(Application.StartupPath & "\CR Reports\BookPickByConsignee.rpt")
    CR.SetParameterValue("param_picknumber", Me.txtpickNumber.Text.Trim())
    CR.DataSourceConnections.Item(0).SetConnection(Configuration.ConfigurationSettings.AppSettings("DatabaseServer").ToString(), Configuration.ConfigurationSettings.AppSettings("DatabaseName").ToString(), Configuration.ConfigurationSettings.AppSettings("UserName").ToString(), Configuration.ConfigurationSettings.AppSettings("Password").ToString())
    'CR.DataSourceConnections.Item(0).SetLogon("sa", "pwd")
    '            CR.SetDatabaseLogon("sa", "pwd")

    CR.PrintOptions.PrinterName = PrintDialog1.PrinterSettings.PrinterName

    CR.PrintToPrinter(Me.txtCopies.Text, True, 1, 100)
    CR.Close()

您可以使用以下代码在运行时为报表应用某些连接详细信息。 对不起,代码是c。 请在加载报表rpt文件后使用该方法,而不是CR.DataSourceConnections.Item0.SetConnection,并将所需的连接详细信息传递给该方法,它将起作用

    public static void CrystalReportLogOn(ReportDocument reportParameters,
                                          string serverName,
                                          string databaseName,
                                          string userName,
                                          string password)
    {
        TableLogOnInfo logOnInfo;
        ReportDocument subRd;
        Sections sects;
        ReportObjects ros;
        SubreportObject sro;

        if (reportParameters == null)
        {
            throw new ArgumentNullException("reportParameters");
        }

        try
        {
            foreach (CrystalDecisions.CrystalReports.Engine.Table t in reportParameters.Database.Tables)
            {
                logOnInfo = t.LogOnInfo;
                logOnInfo.ReportName = reportParameters.Name;
                logOnInfo.ConnectionInfo.ServerName = serverName;
                logOnInfo.ConnectionInfo.DatabaseName = databaseName;
                logOnInfo.ConnectionInfo.UserID = userName;
                logOnInfo.ConnectionInfo.Password = password;
                logOnInfo.TableName = t.Name;
                t.ApplyLogOnInfo(logOnInfo);
                t.Location = t.Name;
            }
        }
        catch
        {
            throw;
        }

        sects = reportParameters.ReportDefinition.Sections;
        foreach (Section sect in sects)
        {
            ros = sect.ReportObjects;
            foreach (ReportObject ro in ros)
            {
                if (ro.Kind == ReportObjectKind.SubreportObject)
                {
                    sro = (SubreportObject)ro;
                    subRd = sro.OpenSubreport(sro.SubreportName);
                    try
                    {
                        foreach (CrystalDecisions.CrystalReports.Engine.Table t in subRd.Database.Tables)
                        {
                            logOnInfo = t.LogOnInfo;
                            logOnInfo.ReportName = reportParameters.Name;
                            logOnInfo.ConnectionInfo.ServerName = serverName;
                            logOnInfo.ConnectionInfo.DatabaseName = databaseName;
                            logOnInfo.ConnectionInfo.UserID = userName;
                            logOnInfo.ConnectionInfo.Password = password;
                            logOnInfo.TableName = t.Name;
                            t.ApplyLogOnInfo(logOnInfo);
                        }
                    }
                    catch
                    {
                        throw;
                    }
                }
            }
        }
    }

嗯,我必须问一下-您服务器上的配置文件是否指向正确的数据库?您验证了吗?@Amit,请修复代码的格式。