我有一个行集合(DataRow []行)。我想将所有行导入另一个DataTable(DataTable dt)。
但是怎么样?
DataTable dt;
if (drs.Length>0)
{
dt = new DataTable();
foreach (DataRow row in drs)
{
dt.Columns.Add(row???????)
}
// If it possible, something like that => dt.Columns.AddRange(????????)
for(int i = 0; i < drs.Length; i++)
{
dt.ImportRow(drs[i]);
}
}
答案 0 :(得分:17)
假设行都具有相同的结构,最简单的选择是克隆旧表,省略数据:
DataTable dt = drs[0].Table.Clone();
或者,例如:
foreach(DataColumn col in drs[0].Table.Columns)
{
dt.Columns.Add(col.ColumnName, col.DataType, col.Expression);
}
答案 1 :(得分:3)
如果您的DataRows来自其中定义了列的数据表,
DataRow[] rows;
DataTable table = new DataTable();
var columns = rows[0].Table.Columns;
table.Columns.AddRange(columns.Cast<DataColumn>().ToArray());
foreach (var row in rows)
{
table.Rows.Add(row.ItemArray);
}
答案 2 :(得分:1)
怎么样
DataTable dt = new DataTable;
foreach(DataRow dr in drs)
{
dt.ImportRow(dr);
}
请注意,仅当drs
为DataRowCollection
时才有效。分离的行(不在DataRowCollection
中被忽略)。
不要忘记致电AcceptChanges。