当前位置: 首页 > news >正文

C#中使用Mysql批量新增数据 MySqlBulkCopy

在C#中使用MySqlBulkCopy类来批量复制数据到MySQL数据库,首先需要确保你的项目中已经引用了MySQL Connector。以下是使用MySqlBulkCopy的基本步骤:
1.安装MySQL Connector。
可以通过NuGet安装MySQL Connector

2.在代码中引用必要的命名空间。

using MySqlConnector;

3.连接串未添加AllowLoadLocalInfile=true

4.创建MySqlConnection对象并打开连接到目标MySQL数据库。
5.创建MySqlBulkCopy对象并设置相关属性。
6.使用WriteToServer方法将数据从DataTable或DbDataReader批量复制到数据库中。
 

示例代码:

public bool SqlBulkAdd(DataTable dt, string tableName)
{        
using (MySqlConnection connection = new MySqlConnection(ConnectionString)){try{connection.Open();MySqlBulkCopy bulkCopy = new MySqlBulkCopy(connection);// 创建MySqlBulkCopy对象bulkCopy.DestinationTableName = tableName; // 目标表名bulkCopy.ColumnMappings.AddRange(GetMySqlColumnMapping(dt));MySqlBulkCopyResult result = bulkCopy.WriteToServer(dt); // dataTable是包含要复制数据的DataTableLogger.Instance.DoSomesting = "  数据库访问";Logger.Instance.Info("批处理数据导入:成功,MySqlBulkCopy");return isSucess;}catch (Exception ex){isSucess = false;Logger.Instance.DoSomesting = "  数据库访问";Logger.Instance.Info("批处理数据导入:异常,MySqlBulkCopy," + ex.Message);return isSucess;//throw ex;}finally{connection.Close();}}
}private List<MySqlBulkCopyColumnMapping> GetMySqlColumnMapping(DataTable dataTable){List<MySqlBulkCopyColumnMapping> colMappings = new List<MySqlBulkCopyColumnMapping>();int i = 0;foreach (DataColumn col in dataTable.Columns){colMappings.Add(new MySqlBulkCopyColumnMapping(i, col.ColumnName));i++;}return colMappings;}

异常,To use MySqlBulkLoader.Local=true, set AllowLoadLocalInfile=true in the connection string. See https://fl.vu/mysql-load-data

解决方法:

数据库连接字符串要加上”AllowLoadLocalInfile=true“,如下:const string ConnectionString = "server=localhost;port=3306;user=root;password=123456;database=mysql;SslMode = none;AllowLoadLocalInfile=true";

异常,Loading local data is disabled; this must be enabled on both the client and server sides 
 

解决方法

mysql数据库开启允许本地导入数据的配置,命令如下:

SET GLOBAL local_infile=1;//1表示开启,0表示关闭

http://www.lryc.cn/news/367790.html

相关文章:

  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的架构差异
  • Ansible——stat模块
  • 第二十节:带你梳理Vue2:Vue子组件向父组件传参(事件传参)
  • 华为od-C卷100分题目 - 10寻找最富裕的小家庭
  • 本地部署AI大模型 —— Ollama文档中文翻译
  • 【前端技术】 ES6 介绍及常用语法说明
  • 程序员具备的职业素养(个人见解)
  • Springboot 开发-- 集成 Activiti 7 流程引擎
  • 一些常用的frida脚本
  • 计算机二级Access操作题总结——简单应用
  • C#操作MySQL从入门到精通(21)——删除数据
  • 【iOS】JSONModel源码阅读笔记
  • 如何离线下载 Microsoft Corporation II Windows Subsystem for Android
  • 使用 flask + qwen 实现 txt2sql 流式输出
  • 植物大战僵尸杂交版最新2.0.88手机+电脑+苹果+修改器
  • Vite - 开发初体验,以及按需导入配置
  • 推荐云盘哪个好,各有各的优势
  • 面试题之webpack与vite系列
  • 单调队列 加 二分
  • Node.js 和 Vue 的区别的基本知识科普
  • 统计信号处理基础 习题解答10-10
  • 【蓝桥杯】C语言常见高级算法
  • FastJson
  • Web3设计风格和APP设计风格
  • 使用React和GraphQL进行CRUD:完整教程与示例
  • matplotlib 动态显示训练过程中的数据和模型的决策边界
  • 【学术小白成长之路】02三方演化博弈(基于复制动态方程)期望与复制动态方程
  • 短剧看剧系统投流版系统搭建,前端uni-app
  • 最新的ffmepg.js前端VUE3实现视频、音频裁剪上传功能
  • “Apache Kylin 实战指南:从安装到高级优化的全面教程