C# Convert a Multi dimensional Object[,]array into a dataset / datatable
I have Object[,] and I am passing that to function and I need to build Datatable
Here is my code I am trying this way
public static DataTable ArraytoDatatable(Object[,] numbers)
{
DataTable dt = new DataTable();
Console.WriteLine(numbers.Rank);
Console.WriteLine(numbers.Length);
for (int dimension = 0; dimension < numbers.Rank; dimension++)
{
dt.Columns.Add("Column"+(dimension+1));
}
Console.WriteLine("Array");
for (int element = 0; element < (numbers.Length / numbers.Rank); element++)
{
DataRow row = dt.NewRow();
for (int dimension = 0; dimension < numbers.Rank; dimension++)
{
Console.Write("{0} ", numbers[element,dimension]);
row["Column" + (dimension + 1)] = numbers[element, dimension];
}
dt.Rows.Add(row);
Console.WriteLine();
}
Console.WriteLine("DataTable");
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
Console.Write("{0} ", row[column]);
}
Console.WriteLine();
}
return dt;
}
Please help me if there is any other kind of approach
Error is here please take a look enter image description here
Another approach I tried is
-`
public DataSet ToDataSet(Object[,] myData)
{
DataSet ds = new DataSet();
// Test 2D array of Objects so that different data types
// can be in each element
// Create a DataTable object. Each row in the table is one
// row in the array
DataTable dt = new DataTable();
// Create DataColumns for each column in the row
// each column is a element in the array param 1 is the name
// of the column and param 2 is its data type
DataColumn dc = new DataColumn("block", typeof(System.String));
// Add this column to the columns collection of the data table
dt.Columns.Add(dc);
dc = new DataColumn("mode", typeof(System.String));
dt.Columns.Add(dc);
dt.Columns.Add(dc);
for (var i = 0; i < myData.GetLength(0); i++)
for (var j = 0; j < myData.GetLength(1); j++)
dt.Rows[i][j] = myData[i, j];
// Add the row to the DataTable
// dt.Rows.Add(data);
// If you need to add the DataTable to a DataSet
// then execute the next two lines
DataSet ds1 = new DataSet();
ds.Tables.Add(dt);
return ds1;
}
`
DataTable.ReadXml()function.<col1>value1</col1><col2>value2</col2>. I can post it as an answer if you like