2015-02-23 71 views
0

我想在窗體上製作一個表格來顯示一些信息。目前,我有一個問題在窗體上的表格中顯示數據

我的表法:

 private DataTable ResultTable() 
    { 
     Other.OrderDatabase orderDatabase = new OrderDatabase(); 
     string[] names = { "Order ID", "Name of order", "Price", "Date of order", "Order description" }; 
     DataTable table = new DataTable(); 
     for (int i = 0; i < names.Length; i++) 
     { 
      //names of columns 
      table.Columns.Add(names[i]); 

      foreach (Order order in orderDatabase.OrdersDatabase) 
      { 
       table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription); 
      } 
     } 
     return table; 
    } 

我的錯誤是:

輸入數組的長度超過列在該表中的數字。

從我的理解我已經輸入正確的列值。我有5個屬性和5個標題?我嘗試添加一個額外的,但這似乎沒有幫助,也許我忽略了一些愚蠢的東西?

回答

0

在添加所有列之前,您正在放置一整行。 第一添加列,那麼行:

for (int i = 0; i < names.Length; i++) 
{ 
    //names of columns 
    Columns.Add(names[i]); 
} 

foreach (Order order in orderDatabase.OrdersDatabase) 
{ 
    table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription); 
} 
1

它看起來像你試圖在每次填充一個單列的時間來填充行。如果我沒有弄錯,你需要在開始填充行之前定義列。

嘗試將這個片段:

foreach (Order order in orderDatabase.OrdersDatabase) 
      { 
       table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription); 
      } 

...出來的for循環,直接在它下面:

for (int i = 0; i < names.Length; i++) 
     { 
      //names of columns 
      table.Columns.Add(names[i]); 
     }