【问题标题】:C# RDLC Reporting ErrorC# RDLC 报告错误
【发布时间】:2012-06-18 17:36:04
【问题描述】:

我已经编写了将 RDLC ReportViewer 与 DataSet 中的 DataTable 附加的代码

但出现此错误:“尚未为数据源'DataSet'提供数据源实例。”

报表查看器的aspx文件代码

这是报告查看器代码

 <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" 
     Font-Size="8pt" InteractiveDeviceInfos="(Collection)" 
     WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
     <ServerReport ReportPath="Analysis.rdlc" />
     <LocalReport ReportPath="Hospital\Analysis.rdlc">
     </LocalReport>
 </rsweb:ReportViewer>

C# 文件代码

这是在 DataSet 中填充 DataTable 行的代码

        ArrayList columns = new ArrayList();
        columns.Add("Temp");
        columns.Add("Humidity");
        columns.Add("Rain");
        columns.Add("Mosquitos");
        columns.Add("FloodArea");
        columns.Add("CloudyWeather");
        columns.Add("FlowerVases");
        columns.Add("IndequateSanitation");
        ArrayList data = new ArrayList();
                    data.Add(Temp.SelectedItem.ToString());
        data.Add(Humidity.SelectedItem.ToString());
        data.Add(Rain.SelectedItem.ToString());
        data.Add(Mosquitos.SelectedItem.ToString());
        data.Add(FloodArea1.SelectedItem.ToString());
        data.Add(CloudyWeather.SelectedItem.ToString());
        data.Add(FlowerVases.SelectedItem.ToString());
        data.Add(IndequateSanitation.SelectedItem.ToString());
        BayesAnalysis bAnlysis = new BayesAnalysis();
        ArrayList result = bAnlysis.classifyD(DiseaseList.SelectedItem.ToString(), columns, data);
        List<double> pn = bAnlysis.PosNum();
        NormalAnalysis nAnalysis = new NormalAnalysis();
        AnalysisDataSet dss = new AnalysisDataSet();
        for (int loop = 0; loop < pn.Count; loop++)
        {
            dss.ReportData.AddReportDataRow(loop, result[loop].ToString(), nAnalysis.NoPatient(nAnalysis.GetDiseaseID("Dengue"), nAnalysis.GetCityID(result[loop].ToString())), nAnalysis.TotalPatient(nAnalysis.GetDiseaseID("Dengue")), nAnalysis.diseasePercentageInCity(nAnalysis.GetDiseaseID("Dengue"), nAnalysis.GetCityID(result[loop].ToString())), pn[loop]);

        }

这是为报表查看器提供数据源的代码

        DataTable dtt = dss.ReportData;
        ReportViewer1.Visible = true;
        ReportDataSource datasource = new ReportDataSource("Analysis",dtt);
        ReportViewer1.LocalReport.DataSources.Clear();
        ReportViewer1.LocalReport.DataSources.Add(datasource);
        ReportViewer1.LocalReport.Refresh();

【问题讨论】:

    标签: rdlc dynamic-rdlc-generation


    【解决方案1】:

    在我的脑海中,我认为您的代码行是:

    ReportDataSource datasource = new ReportDataSource("Analysis",dtt);
    ReportDataSource datasource = new ReportDataSource("DataSet",dtt);
    

    基本上,它与您在 RDLC 文件中使用的名称有关,并且当您提供报表数据集时,它必须命名相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多