DataTable.DataRow的复制(解决:此行已属于另一个表)
2014-06-06 23:36
239 查看
原地址:/article/10332308.html
经常遇到这种错误,“此行已属于另一个表”的错误,导致这个错误的语句如下:
dtPriceTable.Rows.InsertAt(aDataRow,i);
或者
dtPriceTable.Rows.Add(aDataRow);
我分析了一下原因,因为DataRow DataTable 都是传引用调用的。所以一个行在一个表中了,就不能再增加到另外一个表。
具体的改善策略有两种:
1、 把原始DataRow的每列依次赋值。如下:
DataRow tempRow = dtItemPrice.NewRow();
tempRow ["First"] = aDataRow ["First "]
tempRow ["second"] = aDataRow ["second "]
tempRow ["third"] = aDataRow ["third "]
tempRow ["forth"] = aDataRow ["forth "]
tempRow ["Fifth"] = aDataRow ["Fifth "]
……
dtPriceTable.Rows.Add(tempRow)
2、 循环DataTable的每列。如下:
DataRow aDataRow = dtItemPrice.NewRow();
foreach(DataColumn aDataColumn in dtItemPrice.Columns)
{
aDataRow[aDataColumn.ColumnName] = drItemPrices[i][aDataColumn.ColumnName];
}
InsertConditionType(aDataRow,dtItemPrice);
测试就可以了。
3、在表结构相同的情况下,如下面所示:
DataRow aDataRow = dtItemPrice.NewRow();
aDataRow.ItemArray = drItemPrices[i].ItemArray;
dtItemPrice.Rows.Add(aDataRow);
4、使用importRow的方法
经常遇到这种错误,“此行已属于另一个表”的错误,导致这个错误的语句如下:
dtPriceTable.Rows.InsertAt(aDataRow,i);
或者
dtPriceTable.Rows.Add(aDataRow);
我分析了一下原因,因为DataRow DataTable 都是传引用调用的。所以一个行在一个表中了,就不能再增加到另外一个表。
具体的改善策略有两种:
1、 把原始DataRow的每列依次赋值。如下:
DataRow tempRow = dtItemPrice.NewRow();
tempRow ["First"] = aDataRow ["First "]
tempRow ["second"] = aDataRow ["second "]
tempRow ["third"] = aDataRow ["third "]
tempRow ["forth"] = aDataRow ["forth "]
tempRow ["Fifth"] = aDataRow ["Fifth "]
……
dtPriceTable.Rows.Add(tempRow)
2、 循环DataTable的每列。如下:
DataRow aDataRow = dtItemPrice.NewRow();
foreach(DataColumn aDataColumn in dtItemPrice.Columns)
{
aDataRow[aDataColumn.ColumnName] = drItemPrices[i][aDataColumn.ColumnName];
}
InsertConditionType(aDataRow,dtItemPrice);
测试就可以了。
3、在表结构相同的情况下,如下面所示:
DataRow aDataRow = dtItemPrice.NewRow();
aDataRow.ItemArray = drItemPrices[i].ItemArray;
dtItemPrice.Rows.Add(aDataRow);
4、使用importRow的方法
相关文章推荐
- DataTable.DataRow的复制(解决:此行已属于另一个表)
- DataTable.DataRow的复制(解决:此行已属于另一个表)
- DataSet,DataTable.DataRow复制(解决此行已属于另一个表)以及DataTable 实现表结构转换
- DataSet,DataTable.DataRow复制方法——解决:此行已属于另一个表
- DataTable 复制 DataRow 出现 “该行已经属于另一个表”错误的解决办法 [转帖]
- DataTable 复制 DataRow 出现 “该行已经属于另一个表”错误的解决办法
- DataTable 复制 DataRow 出现 “该行已经属于另一个表”错误的解决办法
- DataRow复制一行到另一个DataTable 此行已属于另一个表
- DataTable 复制 DataRow 出现 “该行已经属于另一个表”错误的解决办法【转】
- 复制DataTable时出现"该行已经属于另一个表"异常的解决办法
- [转]怎样向DataTable中添加属于另一个DataTable的DataRow
- [转]DataRow复制一行到另一个DataTable
- 【转载】如何从一个DataTable中添加到属于另一个DataTable的 DataRow
- DataRow复制一行到另一个DataTable
- DataRow复制一行到另一个DataTable
- 如何把已经属于一个DataSet的DataTable加到另一个DataSet中解决方法
- 如何解决"DataTable已属于另一个DataSet问题"
- Datatable添加数据,提示该行已经属于另一个表的解决方法
- DataRow复制一行到另一个DataTable
- 此行已属于另一个表 的解决方法