0

我使用 Crystal Report 2011 制作了一份报告,它在大多数计算机上都可以正常工作,但并非所有计算机都以这种方式丢失了数据库名称。即使我使用代码输入了名称,也使用其属性和服务器配置正确更新了它。它在大多数电脑上都可以正常工作,但很少有电脑会错过它,我重新安装了水晶报告运行时,但它没有工作。我附上错误图像。在此处输入图像描述

4

2 回答 2

1

加载报告后调用以下函数。

public void SetReportLogon(ReportDocument rptDoc)
    {
        if (rptConnection.ServerName == null || rptConnection.ServerName != DBHost)
            rptConnection.ServerName = DBHost;
        if (rptConnection.ServerName == null || rptConnection.DatabaseName != DBName)
            rptConnection.DatabaseName = DBName;

        rptConnection.UserID = DBUserID;
        rptConnection.Password = DBPassword;

        foreach (ReportDocument subRpt in rptDoc.Subreports)
        {
            foreach (Table crTable in subRpt.Database.Tables)
            {
                crTable.LogOnInfo.ConnectionInfo.AllowCustomConnection = true;
                TableLogOnInfo logInfo = crTable.LogOnInfo;                    
                logInfo.ConnectionInfo = rptConnection;
                crTable.ApplyLogOnInfo(logInfo);
            }
        }

        foreach (Table crTable in rptDoc.Database.Tables)
        {
            crTable.LogOnInfo.ConnectionInfo.AllowCustomConnection = true;
            TableLogOnInfo loi = crTable.LogOnInfo;
            loi.ConnectionInfo = rptConnection;
            crTable.ApplyLogOnInfo(loi);
        }            
    }
于 2012-11-25T08:01:07.820 回答
0

您是否使用集成安全性?(该对话框同时勾选了用户/通行证和集成安全性——这相互矛盾)。

请粘贴您用于设置 TableLogonInfo 的代码

于 2012-04-10T14:05:35.700 回答