登录失败.文件xx错误.rpt:无法连接:不正确的登录参数

本文关键字:登录 连接 不正确 参数 xx 错误 rpt 失败 文件 | 更新日期: 2023-09-27 18:08:36

WPF客户端应用程序连接到服务器中的数据库。客户端pc没有安装MS sql server。所以我在客户端PC上安装了最新版本的sql server native client。但是当我试图查看报告时,我得到了以下错误信息。我仔细检查了app.config中的数据库连接字符串,它包含正确的登录信息。

<message>Logon failed.Error in File EmployeeMealSummary {B32AECDC-7F60-4BD9-B2C9-F8153BF2CB5A}.rpt: Unable to connect: incorrect log on parameters.</message>   
<source>rptcontrollers.dll</source>
<stackTrace>at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.SetTableLocation(ISCRTable CurTable, ISCRTable NewTable)
在CrystalDecisions.CrystalReports.Engine.Table

。set_Location(字符串值)

我附上了代码。请帮我解决这个问题。

private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument     reportDocument)
{
    CrystalDecisions.Shared.TableLogOnInfo crTableLogonInfo;
    CrystalDecisions.CrystalReports.Engine.Tables crTables = _report.Database.Tables;
    foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
    {
        crTableLogonInfo = crTable.LogOnInfo;
        crTableLogonInfo.ConnectionInfo.LogonProperties.Clear();
        crTableLogonInfo.ConnectionInfo.Attributes.Collection.Clear();
        crTableLogonInfo.ConnectionInfo.DatabaseName = null;
        crTableLogonInfo.ConnectionInfo.ServerName = connectionInfo.ServerName;
        crTableLogonInfo.ConnectionInfo.UserID = connectionInfo.UserID;
        crTableLogonInfo.ConnectionInfo.Password = connectionInfo.Password;
        crTableLogonInfo.ConnectionInfo.DatabaseName = connectionInfo.DatabaseName;
        crTable.ApplyLogOnInfo(crTableLogonInfo);
        if (crTable.Name == "vEmployee" || crTable.Name == "TB_USER_DEPT" )
        {
            CenUtility.ErrorLog.CreateLog(new ArrayTypeMismatchException());
            crTable.Location = connectionInfo.DatabaseName + ".dbo." + crTable.Location; 
        }
        else
        {
            crTable.Location = connectionInfo.DatabaseName + ".CafDB." + crTable.Location;
        }
    }
}

登录失败.文件xx错误.rpt:无法连接:不正确的登录参数

我遇到了同样的问题,我设置了数据库的位置并更新了表检查是否传递了正确的信息(DatabaseName, Password, UserId, ServerName)试试这个方法,告诉我它是否以正确的方式工作