将 DataRow 数组转换为 DataTable 的简单方法

112

我想将一个DataRow数组转换成DataTable...最简单的方法是什么?

15个回答

2

这是解决方案。它应该可以正常工作。

DataTable dt = new DataTable();
dt = dsData.Tables[0].Clone();
DataRows[] drResults = dsData.Tables[0].Select("ColName = 'criteria');

foreach(DataRow dr in drResults)
{
    object[] row = dr.ItemArray;
    dt.Rows.Add(row);
} 

1
如果有人需要VB.NET版本的话,请参考以下代码:

Dim dataRow as DataRow
Dim yourNewDataTable as new datatable
For Each dataRow In yourArray
     yourNewDataTable.ImportRow(dataRow)
Next

1
你需要先克隆数据表的结构,然后使用for循环导入行。
DataTable dataTable =dtExisting.Clone();
foreach (DataRow row in rowArray) {
   dataTable.ImportRow(row);
}

0
DataTable dataTable = new DataTable();
dataTable = OldDataTable.Tables[0].Clone();
foreach(DataRow dr in RowData.Tables[0].Rows)
{
 DataRow AddNewRow = dataTable.AddNewRow();
 AddNewRow.ItemArray = dr.ItemArray;
 dataTable.Rows.Add(AddNewRow);
}

0
  public static void AddRange(this DataColumnCollection @this, params string[] columns)
        {
            foreach (string column in columns)
            {
                @this.Add(column);
            }
        }
        public static DataTable ConvertEnumerableRowCollectionToDataTable(EnumerableRowCollection<DataRow> drs, string[] columns)
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(columns);
            foreach (DataRow dr in drs)
            {

                dt.ImportRow(dr);
            }

            return dt;
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接