C#两个DataTable拷贝问题:该行已经属于另一个表的解决方法

一、DataTable.Rows.Add(DataRow.ItemArray);

二、DataTable.ImportRow(DataRow)

三、设置DataTable的tablename,然后.Rows.Add

第一种方法在项目中用到,确实好用!两种方式都可以自己选择吧,没有什么好坏

----------------------------------------------------------------------------------------------------------------

要把数据从一个DataTable复制到另一个DataTable,执行结果出现c#错误:

该行已经属于另一个表。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: 该行已经属于另一个表。

错误代码如下:

DataTable sourceTable = null;

sourceTable = GetTest(tableName);

if (sourceTable == null)

{

return null;

}

DataTable retTable = new DataTable();

foreach (DataRow dr in sourceTable.Rows)

{

if (dr["主键"].ToString() != "")

{

retTable.Rows.Add(dr);

}

}

后经修改,调试通过,修改后代码如下:

      DataTable sourceTable = null;

sourceTable = GetTest(tableName);

if (sourceTable == null)

{

return null;

}

DataTable retTable = new DataTable();

foreach (DataRow dr in sourceTable.Rows)

{

if (dr["主键"].ToString() != "")

{

retTable.Rows.Add(dr.ItemArray);

}

}

时间: 2024-10-14 18:53:54

C#两个DataTable拷贝问题:该行已经属于另一个表的解决方法的相关文章

C# 该行已经属于另一个表 的解决方法[转]

该文转自:http://blog.sina.com.cn/s/blog_48e4c3fe0100nzs6.html DataTable dt = new DataTable(); dt = ds.Tables["All"].Clone();//把All的结构传递给dt DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1");for(int i=0;i<dr.Length;i+

C# 该行已经属于还有一个表 的解决方法

产生错误的代码: DataTable dtContract_src = Oper.GetDataTable("select * from T_Contract where ProjectID=" + ProjectID_src + " and Flag=0", con_src); foreach (DataRow dr in dtContract_src.Rows) { String ContractID_src = dr["ContractID"

C# 该行已经属于另一个表 的解决方法

产生错误的代码: DataTable dtContract_src = Oper.GetDataTable("select * from T_Contract where ProjectID=" + ProjectID_src + " and Flag=0", con_src); foreach (DataRow dr in dtContract_src.Rows) { String ContractID_src = dr["ContractID"

(转)DataTable添加行出现“该行已经属于另一个表”的错误!

1 DataTable dt1 = new DataTable(); 2 3 DataTable dt2 = new DataTable(); 4 5 //为dt1创建结构 6 7 DataColumn pName = new DataColumn("名称"); 8 pName.DataType = System.Type.GetType("System.String"); 9 DataColumn pCount = new DataColumn("数量&

C# DataTable.Rows.Add(DataRow) 该行已经属于另一个表

从一个TABLE中取一行放到另一个TABLE里报错: 该行已经属于另一个表.的解决办法 用下面来个方法就OK了. DataTable dt = new DataTable(); dt = ds.Tables["All"].Clone();//克隆All的结构传递给dt DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //通过条件得到符合条件的行 for(int i=0;i

该行已属于另一张表的解决方法

一.DataTable.Rows.Add(DataRow.ItemArray); 二.DataTable.ImportRow(DataRow) 三.设置DataTable的tablename,然后.Rows.Add 第一种方法在项目中用到,确实好用!不过感觉第二种应该更好用一些. -------------------------------------------------------------------------------------------------------------

C# 该行已经属于另一个表

在做一个项目的时候,需要将后台的数据传到前台,然后显示在datagrid里面,由于用到了多个表的联查,所以在后台将查到的需要显示的数据都存到了DataTable里面,然后做循环,每次查出来一条数据,就往DataTable里面传入一条,结果理好逻辑,写好代码,就报了这个错: 经过一些尝试未果,果断百度,查到了解决方法,因为查到的东西不止是需要的数据,还有别的东西,所以应该将这句代码: table.Rows.Add(row); 改为: table.Rows.Add(row.ItemArray); 查

关于 从别人电脑上 高版本的 Xcode上拷贝过来的项目的 不能运行模拟器的 解决方法

如图 从别人电脑上 拷贝过来的  工程  打开后  点击 iOS  Device  只有  一个选项  没有模拟器.这说明 自己的 Xcode 的版本比 创建这个工程所用的版本低.所以 要睇啊你target  然后在 General  里面的  Deployment Info 里面的  Deployment Target 这个下拉框中 选择自己 的Xcode 所支持的  版本就行了.

两个页面跳转传中文参数,中文出现乱码解决方法

// encodeURI 编码 window.location.href(encodeURI("zhongji2.html"+"?"+"parm1="+parm1+"&parm2="+parm2+"&parm3="+parm3+"&parm4="+parm4)); // decodeURI 解码 var url=decodeURI(location.href);