C#编程之c#mysql批量更新的两种方法
小标 2018-10-22 来源 : 阅读 2893 评论 0

摘要:本文主要向大家介绍了C#编程之c#mysql批量更新的两种方法,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文主要向大家介绍了C#编程之c#mysql批量更新的两种方法,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

总体而言update 更新上传速度还是慢.
1:  简单的insert  速度稍稍比MySqlDataAdapter慢一点
配合dapper 
配置文件

 string connectionString = ConfigurationManager.ConnectionStrings["mysqlconnectionString"].ToString();

 

 public int Update(BaseTable model)
        {
            #region SQL语句
            const string sql = @"
            UPDATE  terminal_base
            SET  license_number2 = @license_number2  WHERE license_number = @license_number";
            #endregion
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {

                return connection.Execute(sql, model);
            }

        }


 public class BaseTable
    {
        public string license_number { get;set; }  //客户编码
        public string shop_name { get; set; }  //店铺名称
        public string user_name { get; set; }  //姓名
        public string phone_number { get; set; } //手机号  

    }

更新5万数据用了十来分钟吧.单线程处理的
2用MySqlDataAdapter上传 这个坑不少,网上资料也很少,   fill是 从当前数据库查询到数据填充到dataset, update是把 改完的dataset 上传到mysql  .

/// 


        ///使用MySqlDataAdapter批量更新数据
        /// 


        /// 

数据库连接字符串
        /// 

数据表
        public void BatchUpdate(List

 model)
        {
            DataTable table = ListToDatatable.ToDataTable(model);
            table.TableName = "terminal_base";
            table.ExtendedProperties.Add("SQL", "select license_number,license_number2 from terminal_base");
            MySqlConnection connection = new MySqlConnection(connectionString);
            connection.Open();
            //创建数据适配器
            string sqlcommd= "select license_number,license_number2 from zyzs_terminal_base";
         
            MySqlDataAdapter adapter = new MySqlDataAdapter(sqlcommd, connection);
            DataSet ds = new DataSet();//创建数据集
            adapter.Fill(ds, "terminal_base");
            //  ds.Tables.Clear();
            //给SqlDataAdapter的UpdateCommand属性指定执行更新操作的SQL语句select * from zyzs_terminal_base
             adapter.UpdateCommand = new MySqlCommand("update terminal_base set license_number2 = @license_number2 where license_number=@license_number", connection);
              
            //添加参数并赋值
            adapter.UpdateCommand.Parameters.Add("@license_number2", MySqlDbType.VarChar, 50, "license_number2");
            MySqlParameter prams_ID = adapter.UpdateCommand.Parameters.Add("@license_number", MySqlDbType.VarChar);
            prams_ID.SourceColumn = "license_number";
            prams_ID.SourceVersion = DataRowVersion.Original;
            //填充数据集  //调用Update方法提交更新后的数据集ds,并同步更新数据库数据
            adapter.Update(ds, "terminal_base");
          //  transaction.Commit();
            //MySqlCommand command = connection.CreateCommand();
            //command.CommandTimeout = 4000;
            //command.CommandType = CommandType.Text;
            //MySqlDataAdapter adapter = new MySqlDataAdapter(command);
            //MySqlCommandBuilder commandBulider = new MySqlCommandBuilder(adapter);
            //commandBulider.ConflictOption = ConflictOption.OverwriteChanges;

            //MySqlTransaction transaction = null;
            //try
            //{
            //    connection.Open();
            //    transaction = connection.BeginTransaction();
            //    //设置批量更新的每次处理条数
            //    adapter.UpdateBatchSize = 1000;
            //    //设置事物
            //    adapter.SelectCommand.Transaction = transaction;
            //    if (table.ExtendedProperties["SQL"] != null)
            //    {
            //        adapter.SelectCommand.CommandText = table.ExtendedProperties["SQL"].ToString();
            //    }

            
            //    adapter.Fill(ds, "zyzs_terminal_base");
            //    adapter.Update(table);
            //    transaction.Commit();/////提交事务
            //  }
            //catch (MySqlException ex)
            //{
            //    if (transaction != null) transaction.Rollback();
            //    throw ex;
            //}
            //finally
            //{
            //    connection.Close();
            //    connection.Dispose();
            //}
        }
        //public int Update(Model.Model model)
        //{
        //    #region SQL语句
        //    const string sql = @"
        //    UPDATE [dbo].[Contacts]
        //    SET 
        //            [UserName] = @UserName
        //            ,[Tel] = @Tel
        //            ,[Tel1] = @Tel1
        //            ,[Address] = @Address
        //                WHERE [Id] = @Id";
        //    #endregion
        //    using (SqlConnection connection = new SqlConnection(connstr))
        //    {

        //        return connection.Execute(sql, model);
        //    }

        //}
#endregion

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程