2

How convert DataTable to Array?

Source my converter from DataTable to object[,]

        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++;
        }
ckruczek
  • 2,361
  • 2
  • 20
  • 23
askeet
  • 689
  • 1
  • 11
  • 24
  • You may want to try to specify the size of the cloned array `... as object[dr.Row.ItemArray.Length] // or something like this` or clone it item per item. – ckruczek May 22 '15 at 12:43

1 Answers1

3
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++;
}
}
Jony Adamit
  • 3,178
  • 35
  • 44