0

WPF クライアント アプリケーションは、サーバー内のデータベースに接続します。クライアント PC に MS SQL サーバーがインストールされていません。そこで、クライアントPCにSQL Serverネイティブクライアントの最新バージョンをインストールしました。しかし、レポートを表示しようとすると、次のエラー メッセージが表示されました。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;
        }
    }
}
4

1 に答える 1

0

私は同じ問題に直面し、データベースの場所を設定し、テーブルを更新して、正しい方法(DatabaseName、Password、UserId、ServerName)が渡されたことを確認し、この方法を試して、正しい方法で機能するかどうかを教えてください

于 2015-04-19T06:27:29.637 に答える