【发布时间】:2018-05-29 16:56:39
【问题描述】:
我想将一个 DataTable 的第一行复制到另一个 DataTable 的第一行。我做了如下所示,但它会抛出类似
的错误无法将属性或索引器“System.Data.DataRowCollection.this[int]”分配给——它是只读的
DataTable dt = GetTable();
DataTable dt1 = GetTable1();
dt.Rows[0] = dt1.Rows[0];
【问题讨论】:
-
你的
GetTable()返回什么? -
@ThadeuFernandes 它显然返回了一个
DataTable实例... -
是的,这很明显,但是除了新实例之外,还可以将更多值分配给
DataTable,DataTable的新实例的行数将等于 0,从而导致 out of range 运行时异常,或者您可能有一个方法,您已经创建了具有空值的行以便稍后填充它们,两者都会给您相同的异常(dt.Row[0] 是只读的)并且区别对待。无论如何,您的行集合就像IEnumerable一样工作,该集合是只读的,您可以使用dt.Rows.Add (row)或dt.Rows.InsertAt (row, index)来填充您的集合。