无法从'方法组'转换为'List <datatable>'

时间:2016-08-29 09:37:11

标签: c# datatable

我的代码中有一个方法:

private void SetSubReportDataSource(CrystalDecisions.CrystalReports.Engine.ReportDocument document, List<DataTable> tables, int counter)
        {
            if (tables.Count > 0)
            {
                System.Data.DataSet reportDataSet = AddTableInReportDataSet(tables);

                CrystalDecisions.CrystalReports.Engine.ReportDocument subReport = document.Subreports[counter];
                subReport.SetDataSource(reportDataSet);
            }
        }

我做了这个:

public List<DataTable> FillSubreport()
        {
            List<DataTable> ldt = new List<DataTable>();

            DataTable dt = new DataTable();
            dt.Columns.Add("SectionID");
            dt.Columns.Add("SectionName");

            dt.Rows.Add(new object[] { "1", "Subreport1"});
            dt.Rows.Add(new object[] { "2", "Subreport1" });
            dt.Rows.Add(new object[] { "3", "Subreport1" });

            ldt.Add(dt);
            return ldt;
        }

当尝试执行第一个这样的方法时:

SetSubReportDataSource(document, FillSubreport , subReportCounter);

FillSubreport是高亮的,我收到了这个错误:

Cannot convert from 'method group' to 'List<DataTable>'

2 个答案:

答案 0 :(得分:1)

这似乎是代码中的一个简单语法错误:

SetSubReportDataSource(document, FillSubreport , subReportCounter);

您正在尝试拨打FillSubreport,但未能在其末尾添加()以表明它是一种方法。尝试:

SetSubReportDataSource(document, FillSubreport(), subReportCounter);

答案 1 :(得分:0)

您也可以尝试这样做,

List<DataTable> data = FillSubreport(); 

SetSubReportDataSource(document, data , subReportCounter);