C# CrystalDecisions.CrystalReports.Engine.Table.ApplyLogOnInfo对象引用未设置为对象实例

C# CrystalDecisions.CrystalReports.Engine.Table.ApplyLogOnInfo对象引用未设置为对象实例,c#,crystal-reports,C#,Crystal Reports,此代码有什么问题: ReportDocument cryrpt = new ReportDocument(); TableLogOnInfos crtablelogoninfos = new TableLogOnInfos(); TableLogOnInfo crtablelogoninfo = new TableLogOnInfo(); ConnectionInfo crconnectioninfo = new Conne

此代码有什么问题:

ReportDocument cryrpt = new ReportDocument();
            TableLogOnInfos crtablelogoninfos = new TableLogOnInfos();
            TableLogOnInfo crtablelogoninfo = new TableLogOnInfo();
            ConnectionInfo crconnectioninfo = new ConnectionInfo();
            Tables CrTables;

            cryrpt.Load("C:\\Documents and Settings\\Administrator\\Desktop\\minfatora11-7--\\minfatora\\minfatora\\Treasury_account_out_come.rpt");

            crconnectioninfo.ServerName = "localhost";
            crconnectioninfo.DatabaseName = "MNFATOR";
            crconnectioninfo.UserID = "ICMADMIN";
            crconnectioninfo.Password = "ICMADMIN";

            CrTables = cryrpt.Database.Tables;

            foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
            {
                crtableLogoninfo = CrTable.LogOnInfo;
                crtableLogoninfo.ConnectionInfo = crConnectionInfo;
                CrTable.ApplyLogOnInfo(crtableLogoninfo);
            }





            cryrpt.RecordSelectionFormula = "select * from tblxxx where xxx=2";
            cryrpt.Refresh();
            allReportViewer.ReportSource = cryrpt;
我得到错误:“对象引用未设置为对象的实例。” 在线:

CrTable.ApplyLogOnInfo(crtableLogoninfo);

当您在此行中获取表格时,您的
CrTables
null

CrTables = cryrpt.Database.Tables;
  • 您可以验证加载路径
  • 或者检查文件Treasury\u account\u out\u come.rpt的语法

  • 您能否解释一下原始代码不正确的原因,以及您的代码如何更正这些错误?请确保在Crystal报告文件中添加一个“公式字段”,并注意其中的字段名{tblxxx.fieldxxx}是字段名的正确格式。当做
    cryrpt.RecordSelectionFormula = "{tblxxx.xxx}=2";