dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法
本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。
总体而言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
本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!
dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法相关推荐
- Mysql使用binlog恢复数据解决误操作问题的两种方法
Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...
- mysql update 批量更新_mysql 批量更新的两种方法
本文介绍两种批量更新数据方法 数据准备 create table account ( id int auto_increment primary key, balance int not null ) ...
- mysql 修复数据表 批量_MySQL数据库迁移与MySQL数据库批量恢复
一.MySQL数据库迁移或备份 将相关数据库数据文件直接迁移方式 1. 了解使用InnoDB引擎创建数据库所产生的文件 使用MySQL InnoDB引擎所产生的文件(三个文件都很重要) .ibd:包含 ...
- mysql语句查询慢造成mysql卡死_MySQL数据库之一次MySQL慢查询导致的故障
本文主要向大家介绍了MySQL数据库之一次MySQL慢查询导致的故障 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我们知道分析MySQL语句查询性能的方法除了使用EXPLAI ...
- mysql行列转换case_浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用_MySQL...
bitsCN.com /*创建数据库*/ CREATE DATABASE tmp go USE tmp go /*创建数据库测试表*/ CREATE TABLE [Scores] ( [ID] INT ...
- sql server 数据库mdf与ldf文件的导入两种方法
方法一: 在sql server 的某个数据库上新建查询, @dbname = 'databasename', @filename1 = 'mdf文件路径(包缀名)', @filename2 = ' ...
- mysql数据库运行远程用户访问不了_MySQL数据库远程访问权限如何打开(两种方法)...
下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads » 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上 ...
- cpp 怎么连接mysql_C++连接mysql数据库的两种方法
现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接m ...
- mysql php gpl_MySQL_MySQL数据库远程访问权限如何打开(两种方法),下载GPL版本安装MySQL Community - phpStudy...
MySQL数据库远程访问权限如何打开(两种方法) 下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads » 在我们使用mys ...
最新文章
- 什么是CPU的虚拟化技术?优势又是什么
- Xamarin ios C#苹果应用开发第二讲配置环境和编写代码
- U盘、硬盘格式化数据恢复
- mysql的dml语句_Mysql基础入门-SQL_DML语句
- Oracle 安装完怎么用,oracle 11g 安装完怎么用
- %d 跟%i 的区别以及scanf和sscanf的用法
- Android Studio在线安装Android SDK注意事项
- Django从理论到实战(part2)--virtualenvwrapper
- Linux系统编程---11(会话,守护进程,创建守护进程)
- Python_多进程编程
- 解决导入Beautifulsoup 报错 AttributeError: 'module' object has no attribute '_base'的问题
- memcache简单操作
- Java代码常见错误写法
- 上海科技大学信息科学与技术研讨会(SSIST day1) 笔记
- SuperMap iServer 重置密码
- iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destinatio
- 以计算机专业为主的活动,院系宣传 | 计算机科学与技术系:以梦为码
- android加载二维码带中间logo
- c语言炒股软件公式,20年的炒股实战公式让你认清股市本质 想不发财就难 源码放送 送给有缘人...
- UCenter和应用中配置信息详解
热门文章
- 关于c中的inline
- 计算机科学与技术第二章ppt,计算机科学与技术-编译原理-第二章重点.ppt
- php 获取signature,PHP开发微信无法获取到signature,timestamp,nonce
- 输入矩阵包含 nan 或 inf_荣耀 V30 PRO 采用超感光电影相机矩阵
- 设备租赁系统源码_滑雪场一卡通管理系统,设备租赁更简便
- 架构 encoder_一种新的超分模型蒸馏架构 (ECCV2020)
- 继承关系中的拷贝构造函数和赋值操作重载函数分析
- Cortex-M3的工作模式和特权级别
- C++中的虚函数与纯虚函数
- 几张表格怎么联动_猛男必备具皮肤:和平精英火箭少女联动火爆来袭,这摩托皮不香?...