IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    testcs_dn发表于 2015-06-09 15:51:55
    love 0

    产生错误的代码:

    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);


沪ICP备19023445号-2号
友情链接