c#mysql批量更新的两种方法

时间:2021-08-16 22:24:34

总体而言update 更新上传速度还是慢.

1:  简单的insert  速度稍稍比MySqlDataAdapter慢一点

配合dapper

配置文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<connectionStrings>
<add name="sqlconnectionString" connectionString="server=127.0.0.1;database=MyDataBase;User=sa;password=123456;Connect Timeout=1000000"/>
<!--<add name="mysqlconnectionString" connectionString="Database=terminal_info;Data Source=127.0.0.1;User Id=root;Password=123456;CharSet=utf8;port=3306"/>-->
<add name="mysqlconnectionString" connectionString="Database=terminal_info;Data Source=192.168.1.220;User Id=root;Password=root;CharSet=utf8;port=3306"/>
</connectionStrings>
</configuration>
 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上传 这个坑不少,网上资料也很少,   下边的方式是从web版本 serversql的写法改进而来, fill是 从当前数据库查询到数据填充到dataset, update是把 改完的dataset 上传到mysql  .

/// <summary>
///使用MySqlDataAdapter批量更新数据
/// </summary>
/// <param name="connectionString">数据库连接字符串</param>
/// <param name="table">数据表</param>
public void BatchUpdate(List<BaseTable> 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, , "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");
}
#endregion

这个方法我是报了错,clr 编译器上下文的问题, 搜搜百度,改改调试里边某项设置就可以了.

c#mysql批量更新的两种方法的更多相关文章

  1. mysql批量更新的两种方式效率试验&lt&semi;二&gt&semi;

    Mysql两种批量更新的对比 简介: mysql搭载mybits框架批量更新有两种方式,一种是在xml中循环整个update语句,中间以‘:’隔开,还有一种是使用case when 变相实现批量更新, ...

  2. mybatis学习之路----批量更新数据两种方法效率对比

    原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...

  3. mysql批量update的两种方法

    today a question let me happy(抓狂) 头儿分了一个小任务,让修改循环调用dao层的那些不啦不啦不啦,鉴于之前写过批量更新的玩意,so 很快代码就修改完了,but 测的时候 ...

  4. mysql 批量更新的四种方法

    批量更新的方法: 1 ) 逐条更新 代码如下: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新 ...

  5. mysql级联更新的两种方式:触发器更新和外键

    1.mysql级联更新有两种方式:触发器更新和外键更新. 2.触发器更新和外键更新的目的都是为了保证数据完整性. 我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1 ...

  6. mybatis 根据id批量删除的两种方法

    原文:https://blog.csdn.net/qq_40010745/article/details/81032218 mybatis 根据id批量删除的两种方法   第一种,直接传递给mappe ...

  7. 代码操作Word时,目录自动更新的两种方法

    最近的项目中有一个功能点为:根据分析数据库并生成报告.不过不是大数据.数据挖掘之类,报告的内容.组织方式都是事先固定下来的.实现的方式为,在普通word文档中插入书签制成模板,然后程序使用OpenXM ...

  8. Mysql批量更新的三种方式

    前言 批量插入由于mysql的VALUES原生支持,使用较为便利. 批量更新的写法一般有三种,在更新数量较少的情况下,前两种性能不相上下.但是在更新字段增加,更新条数较多(500以上)建议使用第三种写 ...

  9. 【ADO&period;NET-中级】百万级数据的批量插入的两种方法测试

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...

随机推荐

  1. SQ--模糊查询

    Between..And --between...and...在数据库内部是做作特殊优化的,执行效率比> and<等这种方式快:--between a and b 相当于:字段>=a ...

  2. struts1标签-&lt&semi;html&colon;radio&gt&semi; 使用注意事项

    struts1标签-<html:radio> 使用注意事项 1.默认选中效果 在后台XxxForm中写入如下代码,可保证默认选中效果实现: @Override public void re ...

  3. Xamarin&period;Forms&plus;Prism(3)—— 简单提示UI的使用

    这次给大家介绍两个比较好用的提示插件,如成功.等待.错误提示. 准备: 1.新建一个Prism Xamarin.Forms项目: 2.右击解决方案,添加NuGet包: 1)Acr.UserDialog ...

  4. JS对象属性命名规则

    JS标识符的命名规则,即变量的命名规则: 标识符只能由字母.数字.下划线和'$'组成 数字不可以作为标识符的首字符 对象属性的命名规则 通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只 ...

  5. String s&equals;new String&lpar;&quot&semi;abc&quot&semi;&rpar;创建了几个对象&quest;

    String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 答案应该是1个或者2个. 1个 ...

  6. 【AtCoder2134】ZigZag MST(最小生成树)

    [AtCoder2134]ZigZag MST(最小生成树) 题面 洛谷 AtCoder 题解 这题就很鬼畜.. 既然每次连边,连出来的边的权值是递增的,所以拿个线段树xjb维护一下就可以做了.那么意 ...

  7. vue-cli&plus;webpack在生成的项目中使用bootstrap的方法

    在一个html页面中加入bootstrap是很方便,就是一般的将css和js文件通过Link和Script标签就行.那么在一个用vue-vli生成的前端项目中如何加入?因为框架不一样了,略微要适应一下 ...

  8. eclipse快键

    工作中经常用到的几个eclipse快捷键 ctrl+alt+箭头下或上-----------------复制当前行 ctrl+q -------------让光标返回最后一次修改的地方 ctrl+d ...

  9. 区别JS中类的静态方法,静态变量,实例方法,实例变量

    1.类的静态方法 先来段代码之后分析 // JS类静态函数 function BaseClass() { } // 类添加add函数 BaseClass.add = function() { cons ...

  10. Ionic Tabs

    Ionic 默认的 Tabs 模板 ,Android的在上方,IOS的在下方.在www/js/app.js修改配置,添加一个变量,再修改相应属性: .config(function($statePro ...