将DataRow复制到新的DataTable中,并使用原始DataTable中的适当类型



考虑一个DataTable,其中的一个子集将被复制到一个新的DataTable中。子集是一定数量的行,直到某个索引。目前,它是用以下代码完成的:

DataTable toDisplay = new DataTable();
// dataSource is the original DataTable
foreach (DataColumn col in dataSource.Columns)
toDisplay.Columns.Add(new DataColumn(col.ColumnName, col.GetType()));
for (int i = 0; i < maxIndex; i++)
{
var index = i;
var currentRow = dataSoure.Rows[index];
object[] currentRowItems = currentRow.ItemArray; // this is the problematic line
toDisplay.Rows.Add(currentRowItems);
}

这种方法的问题在于,结果表中的行没有原始表中的特定类型。如何做到这一点?

您可以使用Clone:

克隆DataTable的结构,包括所有DataTable架构和约束。

因此,您可以简单地执行以下操作:

DataTable toDisplay = dataSource.Clone();
for (int i = 0; i < maxIndex; i++)
{
var index = i;
var currentRow = dataSource.Rows[index];

toDisplay.ImportRow(currentRow);
}

相关内容

  • 没有找到相关文章

最新更新