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)