0

Visual Studio 2010 で次のように記述しました。

    label2.Text = Convert.ToString(BAssistencia.nroo);
    ReportDocument oRep = new ReportDocument();
    ParameterField campo = new ParameterField();
    ParameterFields campo2 = new ParameterFields();
    ParameterDiscreteValue Pdv = new ParameterDiscreteValue();

    campo.Name = "@pedido";
    Pdv.Value = label2.Text;
    campo.CurrentValues.Add(Pdv);
    campo2.Add(campo);
    crystalReportViewer1.ParameterFieldInfo = campo2;
    oRep.Load("C:/Relatorios/CrystalReport3.rpt");
    crystalReportViewer1.ReportSource = oRep;
    oRep.SetDatabaseLogon("sa","password","server","database");

レポートは、Visual Studio がインストールされたコンピューターで問題なく開きますが、展開すると、アプリケーションが何度もログを要求します。私は何を間違っていますか?前もって感謝します。

4

2 に答える 2

1

この問題を解決するには、2つのオプションがあります。

  1. データベースへのアクセスにはWindowsユーザーアカウントを使用する 詳細はこちら

  2. メインレポートとすべてのサブレポートにクレデンシャルを動的に適用する

DBロギング情報が各CrystalReportsセクションに適用されると、アプリケーションの実行が遅くなります

http://www.daniweb.com/software-development/csharp/threads/214322/c-crystal-reports-changing-database-and-server-name

于 2012-07-02T07:36:24.300 に答える
0

このコードを試すことができますか

ReportDocument rpt = new ReportDocument();
        rpt.Load(@"C:\CrystalReport1.rpt");

        ConnectionInfo crConnectionInfo = new ConnectionInfo();
        crConnectionInfo.ServerName = "SERVERNAME";
        crConnectionInfo.DatabaseName = "DATABASENAME";
        crConnectionInfo.UserID = "USERNAME";
        crConnectionInfo.Password = "PASSWORD";
        crConnectionInfo.IntegratedSecurity = false;

        TableLogOnInfos crTableLogonInfos = new TableLogOnInfos();
        TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
        Tables CrTables;
        CrTables = rpt.Database.Tables;

        foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in CrTables)
        {
            crTableLogonInfo = crTable.LogOnInfo;
            crTableLogonInfo.ConnectionInfo = crConnectionInfo;
            crTable.ApplyLogOnInfo(crTableLogonInfo);
        }
        crystalReportViewer1.ReportSource = rpt;
        crystalReportViewer1.Refresh();
于 2012-07-02T07:28:53.350 に答える