错误:“以下方法或属性之间的调用不明确”?
当我运行我的项目时,会显示以下错误消息:
以下方法或属性之间的调用不明确:’Microsoft.Reporting.WinForms.ReportDataSource.ReportDataSource(string,System.Collections.IEnumerable)’和’Microsoft.Reporting.WinForms.ReportDataSource.ReportDataSource(string,System.Data.DataTable) )。
为什么?
firstReportDBDataContext dc = new firstReportDBDataContext(); private void Form1_Load(object sender, EventArgs e) { dsFirstReport.dtLoaiHangDataTable dt = new dsFirstReport.dtLoaiHangDataTable(); var query = from a in dc.tblLoaiHangHoas select a; foreach (tblLoaiHangHoa a in query) { dt.Rows.Add(a.MaLoai, a.TenLoai); } this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("dsFirstReport_DataSet1",dt)); this.reportViewer1.RefreshReport(); }
从错误消息中可以清楚地看到, dsFirstReport.dtLoaiHangDataTable
类型inheritance了DataTable
类型并实现了IEnumerable
。
您可以通过将参数转换为其中一个来解决编译器的歧义。 例如:
reportViewer1.LocalReport.DataSources.Add( new ReportDataSource("dsFirstReport_DataSet1", (IEnumerable)dt));