2014-11-14 1 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

+0

'dsFirstReport.dtLoaiHangDataTable'은'DataTable'에서 상속 받고'IEnumerable'을 구현합니까? 그렇다면 선택할 수있는 것을 모르는 이유입니다. – juharr

+0

dsFirstReport는 LoaiHang 테이블 –

답변

2

, 그것은 유형 dsFirstReport.dtLoaiHangDataTableDataTable 유형을 상속 IEnumerable을 구현하는 것이 분명하다.

매개 변수를 둘 중 하나로 캐스팅하여 컴파일러의 모호성을 해결할 수 있습니다. 예 :

reportViewer1.LocalReport.DataSources.Add(
    new ReportDataSource("dsFirstReport_DataSet1", (IEnumerable)dt)); 
관련 문제