目录

  •  前言
  •  正文
    •   批量更新方法

 前言

  MySqlDataAdapter的Update方法不仅仅能够做到更新,还可以删除,添加,查看MySql支持C#的.dll库,会发现其实很多东西都继承实现了微软的那一套。

  因为在更改数据时会读到内存中,例如用DataTable存储 1,那么DataTable只是数据的副本。只要保证目标参数中的DataTable的行的状态对应增加、删除、更新等 2 就可以实现想要的结果 。

  通过调用SetAdded、Delete、SetModied等方法也可以改变DataTable行增删改状态,而MySqlDataAdapter的Update方法就根据行的状态去更新表,Added的就插入,Deleted的就删除、Modified的就更新。

  需要注意的是,假如你希望删除掉一行数据,并且在调用Update方法后能够在数据库中更新删除掉对应的行,那就 不能调用Remove方法,其是直接从DataTable中删除记录,而不是将行的DataRowState变更为Deleted,想要实现上述操作,应调用Delete方法。而且在调用Update方法之前不能调用 AcceptChanges, 调用AcceptChangs方法后,所有 DataRowState不为Unchanged的行将被修改为Unchanged

 正文

  批量更新方法

public static int MultiUpateData(DataTable dtInfor)
{if (string.IsNullOrEmpty(dtInfor.TableName)){throw new Exception("DataTable.TableName is NULL.");}if (dtInfor.Rows.Count == 0){return -1;}string sqlStr = string.Format("SELECT * FROM {0} WHERE FALSE", dtInfor.TableName);using (MySqlConnection con = new MySqlConnection(MySqlConnectString)){using (MySqlCommand cmd = new MySqlCommand(sqlStr, con)){con.Open();MySqlTransaction transction = con.BeginTransaction(IsolationLevel.ReadCommitted);try{int count = 0;MySqlDataAdapter dataAdapter = new MySqlDataAdapter(cmd);dataAdapter.SelectCommand = new MySqlCommand(sqlStr, con);MySqlCommandBuilder builder = new MySqlCommandBuilder(dataAdapter);builder.ConflictOption = ConflictOption.OverwriteChanges;builder.SetAllValues = true;count = dataAdapter.Update(dtInfor);transction.Commit();dtInfor.AcceptChanges();dataAdapter.Dispose();builder.Dispose();return count;}catch (Exception){transction.Rollback();throw;}}}
}

  1. 其实MySqlDataAdapter的Update方法直接受DataTable或者DataSet这样的参数 ↩︎

  2. 增加、删除、更新 分别对应DataRowState枚举的 Added、Deleted、Modified ↩︎

MySql——MySqlDataAdapter批量更新相关推荐

  1. MySQL的批量更新和批量新增优化

    MySQL的批量更新和批量插入优化 如果需要批量插入和批量更新操作就需要进行sql 的优化,否则近30万条数据的插入或更新就会耗费几分钟甚至更多的时间, 此文仅批量插入和批量更新的几种优化. 批量插入 ...

  2. 原生mysql的批量更新及性能测试

    文章目录 一.前言 二.原生的写法 1.用到的函数是case ...when ...then 2.php拼接sql 3.是否能用到索引 三.批量更新的性能测试(50W数据) 1.首先是更新不同数量的性 ...

  3. mysql的批量更新的语法,MySql 批量更新语法

    mysql数据库在批量更新某表的字段时,语法如下: UPDATE A  AS a INNER JOIN ( SELECT * FROM A WHERE .... ) AS b ON a.order_i ...

  4. mysql语句批量更新数据库_sql 更新批量数据库语句

    JDBC(六)批量处理sql 批量更新是分组在一起的一批更新,并以"批量"方式发送到数据库,而不是逐个发送更新. 一次发送一批更新到数据库,比一个一个发送更快,等待每个更新完成. ...

  5. Mysql + Mybatis批量更新报错 BadSqlGrammarException

    报错 项目启动没问题,查询删除等接口都没问题,Mybatis写法和SQL都没问题,数据也都没问题,批量更新数据时,报错如下 2022-03-29 10:20:37.880 ERROR 133132 - ...

  6. mysql update批量更新_MySql中4种批量更新的方法

    mysql 批量更新共有以下四种办法 1..replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,' ...

  7. mysql update 批量更新_mysql 批量更新的两种方法

    本文介绍两种批量更新数据方法 数据准备 create table account ( id int auto_increment primary key, balance int not null ) ...

  8. mysql jdbc批量更新_jdbc批量更新数据

    { boolean add = true; Connection conn = null; PreparedStatement pst = null; String sql = null; try { ...

  9. dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法

    本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 总体而言update 更新上传速度还是慢. 1:  简单的 ...

最新文章

  1. Mysql 查询 字符串 (索引和通配符)
  2. 张一鸣的微博世界-产品篇二
  3. Centos 7 安装 Haproxy
  4. Python多任务(1.多进程的概念和用法 )
  5. C#比较运算符及解析
  6. axios vue 回调函数_vue中ajax请求与axios包完美处理
  7. 书单推荐:六本好书带你入门数据科学
  8. Vue优化策略_项目上线_02
  9. fat32硬盘格式能在苹果系统里读写操作吗?
  10. 二叉树 的建立及遍历 过程
  11. IOS开发-表视图LV3导航控制器
  12. Camera ISP与DSP的区别(二十五)
  13. 统计python文件中的代码,注释,空白对应的行数
  14. IIS故障问题(Connections_Refused)分析及处理
  15. java运用kmeans算法进行聚类
  16. php工程师外派,招聘兼职Php工程师|Php工程师外包-猿急送
  17. C语言图形颜色编程|颜色
  18. MySQL查询与数据库设计 #万能公式 #思维导图 #MySQL查询 #数据库设计规范 #第二部分
  19. 10步搞定App内测发布(蒲公英内测平台)
  20. 减少银行和金融机构的客户流失

热门文章

  1. 【JavaScript】查询字符串、JSON字符串、时间对象、定时器、同步异步、BOM
  2. CorelDRAW2023新功能有哪些?最新版cdr下载安装教程
  3. 中通开放平台简介——签名生成
  4. 做Meta分析的10个原则,建议收藏。
  5. 2.SGi学习之Hello World
  6. 入耳式降噪耳机哪款好?2021新款入耳式降噪耳机推荐
  7. 现在加入3D游戏建模有没有前景,次世代全流程来啦
  8. 【libdatachannel】streamer与js客户端本机联调3 client流程
  9. php 下载文件(图片、视频、文档)到本地
  10. DataWhale9月组队NLP情感分析