2014-11-14 70 views
1

當我跑我的項目,會顯示以下錯誤信息:錯誤:「以下方法或屬性之間的調用不明確」?

The call is ambiguous between the following methods or properties: 'Microsoft.Reporting.WinForms.ReportDataSource.ReportDataSource(string, System.Collections.IEnumerable)' and '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

'dsFirstReport.dtLoaiHangDataTable'實現了哪些類型? – Rotem 2014-11-14 14:07:27

+0

'dsFirstReport.dtLoaiHangDataTable'是否從'DataTable'繼承並實現'IEnumerable'?如果是這樣,那就是爲什麼它不知道選擇哪個。 – juharr 2014-11-14 14:10:26

+0

dsFirstReport是表LoaiHang的數據集 – 2014-11-14 14:13:54

回答

2

從錯誤信息,很明顯,類型dsFirstReport.dtLoaiHangDataTable繼承DataTable類型和實現IEnumerable

您可以通過將參數轉換爲其中一個來解決編譯器的歧義。例如:

reportViewer1.LocalReport.DataSources.Add(
    new ReportDataSource("dsFirstReport_DataSet1", (IEnumerable)dt)); 
相關問題