【问题标题】:Convert DataTable to object[,]将 DataTable 转换为 object[,]
【发布时间】:2015-05-22 12:37:00
【问题描述】:

如何将DataTable转为Array?

将我的转换器从 DataTable 获取到 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++;
        }

【问题讨论】:

  • 您可能想尝试指定克隆数组的大小... as object[dr.Row.ItemArray.Length] // or something like this 或按项目克隆它。

标签: c# arrays datatables


【解决方案1】:
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++;
}
}

【讨论】:

  • 这是唯一的方法吗?我有一张很大的桌子。
  • 嗯有很多方法..问题是你真的想用这些数据做什么?
  • 我想快速从表格写入 Excel,worksheet.Range[startCell, endCell].Value2 = data;
  • 那么这样就可以了。您也可以查看答案in this SO
猜你喜欢
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 2014-07-22
相关资源
最近更新 更多