相同结构的两个表进行数据复制(SQL数据库)

public bool CopyDataSet_SQL(string sql, DataSet ds_data)

        {

    //sql目标数据表,ds_data源数据表

            IDbCommand dbc = _dbf.GetDBCommand();

            if (_dbtrans != null)

            {

                dbc.Transaction = _dbtrans;

            }

            dbc.Connection = _dbconn;

            dbc.CommandText = sql;

 

            IDbDataAdapter ida = _dbf.GetDataAdapter(dbc);

 

            SqlCommandBuilder scb = new SqlCommandBuilder((SqlDataAdapter)ida); //必须加入此项内容,否则提示"当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。"

            DataSet ds = new DataSet();

            try

            {

                ida.Fill(ds);

 

                for (int i = 0; i < ds_data.Tables[0].Rows.Count; i++)

                { 

                    //整行复制-----方法一

                    //DataRow dr_New= ds.Tables[0].NewRow(); //NewRow之后,RowState的状态为Added

                    //dr_New.ItemArray = ds_data.Tables[0].Rows[i].ItemArray;                   

                    //ds.Tables[0].Rows.Add(dr_New);

 

                    //整行复制-----方法二

                    ds.Tables[0].ImportRow(ds_data.Tables[0].Rows[i]);

                    ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1].SetAdded(); //修改插入行的状态为Added,否则提交到数据库中

 

                }

 

                //提交插入的数据

                int row = 0;

                row = ida.Update(ds);

                if (row > 0)

                {

                    return true;

                }

                else

                {

                    return false;

                }

 

            }

            catch

            {

                ds.Clear();

                throw;

            }

 

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值