ADO.NET数据批量更新

1.先填充数据集

            SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings.Get("Con"));

 

            SqlCommand cmdSelect = new SqlCommand("select * from tbl_Copy",con);

 

            SqlCommand cmdUpdate = new SqlCommand("update tbl_Copy set Val1=@Val1",con);

            cmdUpdate.Parameters.Add("@Val1", SqlDbType.VarChar, 50, "Val1");

 

            cmdUpdate.UpdatedRowSource = UpdateRowSource.None;//将输出参数和第一个返回行都映射到 System.Data.DataSet 中的已更改的行

 

            SqlDataAdapter adp = new SqlDataAdapter();

            adp.SelectCommand = cmdSelect;

            adp.UpdateCommand = cmdUpdate;

 

            DataSet ds=new DataSet();

            adp.Fill(ds);

 

            AdapterUpdate(adp, ds, 100);

2.更新的方法

 

void AdapterUpdate(SqlDataAdapter adp,DataSet ds,int records)

        {

            foreach(DataRow row in ds.Tables[0].Rows)

            {

                row["Val1"] = "批量更新";

            }

 

            try

            {

                DateTime sTime = DateTime.Now;

 

                adp.UpdateBatchSize = records;//每次操作的记录条数

                adp.Update(ds);

 

                DateTime eTime = DateTime.Now;

 

                TimeSpan ss = eTime.Subtract(sTime);

                label1.Text = "更新10条记录,用时 :"+ss.Seconds+"."+ss.Milliseconds+" ";

 

            }

            catch(Exception ee)

            {

                label1.Text = ee.Message;

            }

 

 

        }

3.不过我

更新时老提示我超时,难道是数据量过大,才十万条记录而已,我设置 adp.UpdateCommand.CommandTimeout=10000000;好像也没用,郁闷中。。。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值