2016-07-08 94 views
0

我在C#中有一個非常簡單的項目,但我並沒有太多,因爲我在進步時遇到錯誤。我有一個名爲CUSTOMER的類,包含幾行代碼。無法將索引應用於表達式類型對象

public class Customer 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 


    public Customer(DataRow row) 
    { 
     this.FirstName = row["FirstName"].ToString(); 
    } 


    public List<Customer> GetCustomer() 
    { 
     List<Customer> c=new List<Customer>(); 
     DataTable dt=new DataTable(); 
     Dal.GetDataTable(dt, "select * from customer"); 
     foreach (var row in dt.Rows) 
     { 
      c.Add(new Customer(row["FirstName"])); //Error here 
     } 
     return c; 
    } 
} 

此代碼是非常簡單的,我相信,我想從一個DataTable檢索客戶的名單。據編譯:

不能申請與[]的索引類型爲「對象」

謝謝你的表現。

+0

你想拉'FirstName'柱而出你行的兩倍,而其擺脫你的類型 – Jonesopolis

回答

2

你的錯誤是在這裏:

foreach (var row in dt.Rows) 
{ 
    c.Add(new Customer(row["FirstName"])); 
} 

你應該改變它相匹配的構造器:

foreach (DataRow row in dt.Rows) 
{ 
    c.Add(new Customer(row)); 
} 

您構造函數接受DataRow,所以你需要通過一個排,而不是一個對象( row["FirstName"]返回一個對象,該對象是當前行的FirstName值)。

你還需要隱式地指定的foreach變量(DataRow row in dt.Rows)的類型

+0

謝謝你幫我,但傷心說它不起作用。 https://s32.postimg.org/p0vb589g5/Untitled.png –

+0

@DikongPrigm只需將'var row'改爲'DataRow row' – user3185569

相關問題