运行项目时,会显示以下错误消息:
以下方法或属性之间的调用不明确:'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();
}
答案 0 :(得分:2)
从错误消息中可以清楚地看到,dsFirstReport.dtLoaiHangDataTable
类型继承了DataTable
类型并实现了IEnumerable
。
您可以通过将参数转换为其中一个来解决编译器的歧义。 E.g:
reportViewer1.LocalReport.DataSources.Add(
new ReportDataSource("dsFirstReport_DataSet1", (IEnumerable)dt));