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"].ToString();
                                DataTable dtContract_dst = Oper.GetDataTable("select * from T_Contract where ProjectID=" + ProjectID_src + " and ContractID=" + ContractID_src + " and Flag=0", con_dst);
                                if (dtContract_dst.Rows.Count != 0)
                                {
                                    impContract_exist++;
                                    continue;
                                }

                                dtContract_dst.Rows.Add(dr);

                                String columns = "";
                                String paramss = "";
                                OleDbCommand updateCmd = con_dst.CreateCommand();
                                foreach (DataColumn dc in dtContract_dst.Columns)
                                {
                                    if (columns == "")
                                    {
                                        columns = dc.ColumnName;
                                        paramss = "@" + dc.ColumnName;
                                    }
                                    else
                                    {
                                        columns += ", " + dc.ColumnName;
                                        paramss += ", @" + dc.ColumnName;
                                    }
                                    updateCmd.Parameters.Add(new OleDbParameter(dc.ColumnName, dc.DataType);
                                }
                                updateCmd.CommandText = "insert into T_Contract(" + columns + ") Values(" + paramss + ")";

                                updateCmd.ExecuteNonQuery();

                                //OleDbDataAdapter dataAdap = new OleDbDataAdapter();
                                //dataAdap.InsertCommand = updateCmd;
                                //dataAdap.Update(dtContract_dst);

                            }

错误行:

dtContract_dst.Rows.Add(dr);

解决办法:

dtContract_dst.Rows.Add(dr.ItemArray);
时间: 2024-10-12 07:50:36

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

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

一.DataTable.Rows.Add(DataRow.ItemArray); 二.DataTable.ImportRow(DataRow) 三.设置DataTable的tablename,然后.Rows.Add 第一种方法在项目中用到,确实好用!两种方式都可以自己选择吧,没有什么好坏 ---------------------------------------------------------------------------------------------------------

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"

(转)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 第一种方法在项目中用到,确实好用!不过感觉第二种应该更好用一些. -------------------------------------------------------------------------------------------------------------

关于ORALCE一个表空间的数据导入到另一个表空间的方法(原创)

用户:   whnaproject     所属表空间: whnaproject 新用户   : wniec            所属新表空间: wniec 要求:将用户whnaproject中的数据库表以及数据 ,全部复制到 新表空间wniec的  wniec用户中. 常规过程:用exp命令把用户whnaproject的表及数据导出,然后用IMP命令把导出的表及数据导入到新用户wniec中. 存在问题:用户whnaproject的表及数据可以导入到新用户wniec中,但wniec中的导入的表

关于配置正确hibernate仍然无法创建表的解决方法

 当时全部配置都正确后,而且以前可以正确创建表,为什么突然新写了一个类就不能自动创建了呢.. 其实很简单.. 99%的原因是类的属性名是sql的关键字,不能利用ddl来创建表,还有1%的的原因是没有在cfg中添加 对应的hbm文件.. 嗯  切记... 关于配置正确hibernate仍然无法创建表的解决方法

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。

用 CrystalReportViewer1 控件在asp.net的网页上显示报表,如果做报表时调用数据表数据的方式调用是可以成功的,但报表是用存储过程获取数据方式会出现以下错误: 找不到表'RptOpenCheck;1' . 文件 G:\TEMP\FO-OpenCheck {6D191F06-DECF-4A25-88FC-8553E3D435AA}.rpt 内出错: 找不到表. Error: 未将对象引用设置到对象的实例. The table 'RptOpenCheck;1' could no