C# 如何将一个数据行值分配给另一个数据行

C# 如何将一个数据行值分配给另一个数据行,c#,.net,C#,.net,我想将一个数据表的第一行复制到另一个数据表的第一行。我做了如下所示,但它抛出了如下错误 无法将属性或索引器“System.Data.DataRowCollection.this[int]”分配给--它是只读的 你必须一个字段一个字段地复制它 数据表中的数据行是不可变的,这意味着您可以更改其字段的值,但不能更改对象本身,也就是说您应该将值从源行复制到目标行 假设您的数据表具有相同的列: DataTable dt = GetTable(); DataTable dt1 = GetTable1();

我想将一个数据表的第一行复制到另一个数据表的第一行。我做了如下所示,但它抛出了如下错误

无法将属性或索引器“System.Data.DataRowCollection.this[int]”分配给--它是只读的


你必须一个字段一个字段地复制它

数据表中的数据行是不可变的,这意味着您可以更改其字段的值,但不能更改对象本身,也就是说您应该将值从源行复制到目标行

假设您的数据表具有相同的列:

DataTable dt = GetTable();
DataTable dt1 = GetTable1();
foreach(DataColumn column in dt.Columns)
{
    dt.Rows[0][column] = dt1.Rows[0][column];
}

希望这有帮助。

你的
GetTable()
返回什么?@Thadeurernandes它显然返回一个
DataTable
实例…可能是重复的,它可能是明显的,但是除了新实例之外,更多的值可以分配给
DataTable
,一个
DataTable
的新实例的行数将等于0,在运行时导致超出范围的异常,或者您可能有一种方法,其中您已经创建了空值的行,以便以后只填充它们,这两种方法都会给您带来相同的异常(dt.Row[0]是只读的),并且处理方式不同。无论如何,行集合的工作方式类似于
IEnumerable
,集合是只读的,您可以使用
dt.rows.Add(row)
dt.rows.InsertAt(row,index)
填充集合。
DataTable dt = GetTable();
DataTable dt1 = GetTable1();
foreach(DataColumn column in dt.Columns)
{
    dt.Rows[0][column] = dt1.Rows[0][column];
}