MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下:

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Text;
public class MySqlDbHelper
{
#region 私有变量
private const string defaultConfigKeyName = "MySqlConnection";//连接字符串 Database='数据库';Data Source='IP地址';User Id='sa';Password='sa';pooling=true
private string connectionString;
private string providerName;
#endregion
#region 构造函数
/// <summary>
/// 默认构造函数(DbHelper)
/// </summary>
public MySqlDbHelper()
{
this.connectionString = ConfigurationManager.ConnectionStrings[defaultConfigKeyName].ConnectionString;
this.providerName = ConfigurationManager.ConnectionStrings[defaultConfigKeyName].ProviderName;
}
/// <summary>
/// DbHelper构造函数
/// </summary>
/// <param name="keyName">连接字符串名</param>
public MySqlDbHelper(string keyName)
{
this.connectionString = ConfigurationManager.ConnectionStrings[keyName].ConnectionString;
this.providerName = ConfigurationManager.ConnectionStrings[keyName].ProviderName;
}
#endregion
public int ExecuteNonQuery(string sql, params  MySqlParameter[] parameters)
{
int res = 0;
using (MySqlConnection con = new MySqlConnection(connectionString))
{
con.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, con))
{
foreach (MySqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
try
{
res = cmd.ExecuteNonQuery();
}
catch
{
res = -1;
}
}
}
return res;
}
public object GetExeScalar(string sql, params MySqlParameter[] parameters)
{
object res = null;
using (MySqlConnection con = new MySqlConnection(connectionString))
{
con.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, con))
{
foreach (MySqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
res = cmd.ExecuteScalar();
}
}
return res;
}
public DataTable GetDataTable(string sql, params MySqlParameter[] parameters)
{
DataSet dataset = new DataSet();
using (MySqlConnection con = new MySqlConnection(connectionString))
{
con.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, con))
{
foreach (MySqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
adapter.Fill(dataset);
}
}
return dataset.Tables[0];
}
/// <summary>
/// DataTable批量加入MYSQL数据库
/// </summary>
/// <param name="dataTable"></param>
/// <returns></returns>
public string InsertByDataTable(DataTable dataTable)
{
string result = string.Empty;
if (null == dataTable || dataTable.Rows.Count <= 0)
{
return "添加失败!DataTable暂无数据!";
}
if (string.IsNullOrEmpty(dataTable.TableName))
{
return "添加失败!请先设置DataTable的名称!";
}
// 构建INSERT语句
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO " + dataTable.TableName + "(");
for (int i = 0; i < dataTable.Columns.Count; i++)
{
sb.Append(dataTable.Columns[i].ColumnName + ",");
}
sb.Remove(sb.ToString().LastIndexOf(','), 1);
sb.Append(") VALUES ");
for (int i = 0; i < dataTable.Rows.Count; i++)
{
sb.Append("(");
for (int j = 0; j < dataTable.Columns.Count; j++)
{
sb.Append("'" + dataTable.Rows[i][j] + "',");
}
sb.Remove(sb.ToString().LastIndexOf(','), 1);
sb.Append("),");
}
sb.Remove(sb.ToString().LastIndexOf(','), 1);
sb.Append(";");
int res = -1;
using (MySqlConnection con = new MySqlConnection(connectionString))
{
con.Open();
using (MySqlCommand cmd = new MySqlCommand(sb.ToString(), con))
{
try
{
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
res = -1;
// Unknown column 'names' in 'field list'
result = "操作失败!" + ex.Message.Replace("Unknown column", "未知列").Replace("in 'field list'","存在字段集合中!");
}
}
}
if (res > 0)
{
result = "恭喜添加成功!";
}
return result;
}
}

MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)相关推荐

  1. 编写mysql的工具_自己编写的数据库工具类

    /** * 数据库工具类 * 1.连接数据库 * 2.执行增删改查功能功能并报错 * 3.没有参数传递是则使用默认信息连接 */ class mysql { private $link = null; ...

  2. .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑

    在使用SqlBulkCopy类操作DataTable批量插入数据,这种操作插入数据的效率很高,就会导致每一条数据在保存的时间基本一样,在我们分页查询添加的数据是,使用数据的添加时间来排序就会出现每页的 ...

  3. 开发自己的框架——(二)数据库工具类的封装

    为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高. 首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让 ...

  4. SqlHelper操纵数据库工具类

    SqlHelper操纵数据库工具类 该工具类是SqlHelper的基础版本,将整个类做成静态类,这样可能很难应付高并发的数据库操作,不过这个问题是能够解决的,通过创建SqlHelper对象,将成员变量 ...

  5. oracle数据库中is的使用说明,分享数据库工具类DatabaseUtils实现数据库登录验证isUrlValid、数据类型判断isOracle及连接关闭closeDbObject等常见操作...

    一.前言 基于dbcon-5.0.1.jar.zip开源包的数据库工具类uk.ac.sanger.cgp.dbcon.util.DatabaseUtils对数据连接有效关闭closeDbObject. ...

  6. python mysql工具类_Python工具类(一)—— 操作Mysql数据库

    如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...

  7. JDBC实现用于操作数据库Mysql的工具类JDBCTools

    下面用一个统一的工具类封装一套用于数据库的JDBC操作:包括 1)获取数据库链接资源  2)释放数据库链接资源,包括Connection,Statement,PreparedStatement,Res ...

  8. python调用mysql数据库工具类

    工具类 import MySQLdb import json import datetimeclass CJsonEncoder(json.JSONEncoder):def default(self, ...

  9. java数据库设计工具_Java课程设计---创建数据库工具类

    1.传统的数据库操作 package com.java.mysql; import java.sql.Connection; import java.sql.DriverManager; import ...

最新文章

  1. java设计模式---备忘录模式
  2. Maven安装和配置环境变量
  3. 在Navicat中直接向表里添加数据
  4. 【渝粤教育】电大中专职业健康与安全_1作业 题库
  5. HIVE-分桶表的详解和创建实例
  6. win10下装win7双系统_分享电脑安装win7win10双系统教程
  7. php文章远程图片,php实现异步将远程链接上内容(图片或内容)写到本地的方法
  8. Tun/Tap接口教材-[翻译:Tun/Tap interface tutorial]
  9. Vue基本操作及运行截图总结
  10. win10虚拟服务器安装xp,win10安装xp虚拟机安装教程_win10安装xp虚拟机详细步骤
  11. 什么是URL?URL是什么意思?
  12. Android利用jsoup爬虫爬网页数据(一)
  13. int类型和Integer类型数据的比较
  14. 《Excel数据可视化:一样的数据不一样的图表》——导读
  15. (下)开发一款微信小程序的个性简历,能打开大厂之门并获得门票?(附源码)
  16. 前端websocket和后端传输数据
  17. scratch编程神笔马良
  18. 方向余弦矩阵DCM刚体的矢量—矩阵描述
  19. 制作网站价格是多少呢?制作网站要花多少钱?
  20. 黑马旅游网学习笔记之分页展示(六)

热门文章

  1. Latex 插入目录 设置首页页码为空
  2. Redis之Redis内存模型
  3. 日常问题——hadoop启动后发现namenode没有启动,但是排除了格式化过度的问题
  4. wordpress后台无法登录问题
  5. 备忘(持续更新。。。)
  6. 使用Prometheus监控Cloudflare的全球网络
  7. Bootstrap学习笔记系列1-------Bootstrap网格系统
  8. javascript 模块化机制
  9. 闪存必须解决的三大问题
  10. C# 数据库连接池 线程安全 单例模式 的实现