2015-05-22 5 views
1

Как преобразовать DataTable в массив?Преобразование DataTable в объект [,]

Источник мой конвертер из 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, рабочий лист. Изменить [startCell, endCell] .Value2 = данные; – askeet

Смежные вопросы