2015-05-22 287 views
1

如何將DataTable轉換爲Array?將DataTable轉換爲對象[,]

來源從數據表我轉換爲對象[,]

 uint rows = (uint)table.Rows.Count; 
     uint columns = (uint)table.Columns.Count; 

     var data = new object[rows, columns]; 
     int i = 0; 
     foreach (System.Data.DataRowView drv in table.DefaultView) 
     { 
      System.Data.DataRow ViewRow = drv.Row; 
      data[i] = drv.Row.ItemArray.Clone() as object[];// Wrong number of indices inside []; expected 2  

      i++; 
     } 
+0

你可能想嘗試指定克隆陣列'...爲對象的大小[dr.Row.ItemArray.Length ] //或類似這樣的東西,或者每個項目克隆它的項目。 – ckruczek

回答

2
uint rows = (uint)table.Rows.Count; 
uint columns = (uint)table.Columns.Count; 

var data = new object[rows, columns]; 
int i = 0; 
foreach (System.Data.DataRowView drv in table.DefaultView) 
{ 
    for(int x = 0; x<columns; x++) 
{ 
    System.Data.DataRow ViewRow = drv.Row; 
    data[i, x] = drv[x]; 

    i++; 
} 
} 
+0

這是唯一的方法嗎?我有一張非常大的桌子。 – askeet

+0

那麼有很多方法..問題是你真的想用這些數據做什麼? –

+0

我想快速從表寫入到Excel,worksheet.Range [startCell,endCell] .Value2 = data; – askeet