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 = ;
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 = -;
}
}
}
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[];
} /// <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 <= )
{
return "添加失败!DataTable暂无数据!";
}
if (string.IsNullOrEmpty(dataTable.TableName))
{
return "添加失败!请先设置DataTable的名称!";
}
// 构建INSERT语句
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO " + dataTable.TableName + "(");
for (int i = ; i < dataTable.Columns.Count; i++)
{
sb.Append(dataTable.Columns[i].ColumnName + ",");
}
sb.Remove(sb.ToString().LastIndexOf(','), );
sb.Append(") VALUES ");
for (int i = ; i < dataTable.Rows.Count; i++)
{
sb.Append("(");
for (int j = ; j < dataTable.Columns.Count; j++)
{
sb.Append("'" + dataTable.Rows[i][j] + "',");
}
sb.Remove(sb.ToString().LastIndexOf(','), );
sb.Append("),");
}
sb.Remove(sb.ToString().LastIndexOf(','), );
sb.Append(";");
int res = -;
using (MySqlConnection con = new MySqlConnection(connectionString))
{
con.Open();
using (MySqlCommand cmd = new MySqlCommand(sb.ToString(), con))
{
try
{
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
res = -;
// Unknown column 'names' in 'field list'
result = "操作失败!" + ex.Message.Replace("Unknown column", "未知列").Replace("in 'field list'","存在字段集合中!");
}
}
}
if (res > )
{
result = "恭喜添加成功!";
}
return result;
} }

MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)的更多相关文章

  1. 【JDBC】Java 连接 MySQL 基本过程以及封装数据库工具类

    一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static ...

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

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

  3. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  4. Python工具类(一)—— 操作Mysql数据库

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

  5. mysql ----BaseDao工具类

    package com.zjw.dao; import java.sql.*; /** * 工具类 */ public class BaseDao { static final String DB_U ...

  6. Python数据库工具类MySQLdb使用

    MySQLdb模块用于连接mysql数据库. 基本操作 # -*- coding: utf-8 -*-       #mysqldb       import time, MySQLdb       ...

  7. 工具类之数据库工具类:DBUtil(採用反射机制)

    常常操作数据库的码农们一定知道操作数据库是一项非常复杂的工作.它不仅要解决各种乱码的问题还要解决各种数据表的增删改查等的操作. 另外每次操作数据库都要用到数据库连接.运行SQL语句.关闭连接的操作.所 ...

  8. JDBC-自定义数据库工具类(DBService)

     写在前面的话:      (1)使用JDBC,必须要使用对应的jar包,该笔记中使用jar包:mysql-connector-java-5.1 .6-bin.jar      (2)使用连接池,一定 ...

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

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

随机推荐

  1. [poi2007]mem

    题意:给定点数n<=300000的一棵树,然后初始时每条边权值为1,接下来按照时间点先后顺序的n+m-1个操作, 操作有两种: 1.A a b 把a到b的边权改为0 2.W u 求1号点到u号点 ...

  2. iphone 耳机 线控

    有电话呼入时: 按一次接听电话: 快速按两次将电话转到语音信箱: 通话中: 按一次挂断电话: 通话中如果有第二个电话打进来时: 按一次保留当前通话并接听第二个电话: 按住两秒钟不放忽略(拒绝接听)第二 ...

  3. redis持久化以及主从服务器的配置

    作者:silenceper 日期:2013-10-03 原文地址:http://silenceper.com/archives/959.html redis 与memcached 最大的一个区别就是R ...

  4. Ubuntu 12.04 改造指南

    文章转自:http://www.lupaworld.com/article-217719-1.html 升级12.04已经有一段时间了.作为一个从08年就开始用Ubuntu的老用户,我觉得作为一个LT ...

  5. oracle ORA-12514: TNS: no listener 解决方案

    服务端:oracle 11g 客户端: pl/sql 问题描述: 用客户端 pl/sql 连接登录的时候,提示 "ORA-12514: TNS: no listener". 在服务 ...

  6. HTTP笔记整理(1)

    今天开始学习http协议,把自己从网上整理,自己理解的部分先发出来,共勉! (PS笔者小白一枚,如有理解性的错误,请指正告知,为感!!!) 一.  HTTP协议概念 所谓的“协议”是指,计算机在通信网 ...

  7. 解剖SQLSERVER 第七篇 OrcaMDF 特性概述(译)

    解剖SQLSERVER 第七篇  OrcaMDF 特性概述(译) http://improve.dk/orcamdf-feature-recap/ 时间过得真快,这已经过了大概四个月了自从我最初介绍我 ...

  8. VS2008 Pocket PC 2003 SE仿真程序上网设置

    设置大体分为3个步骤:Microsoft ActiveSync安装配置.Pocket PC 2003 SE仿真程序配置.Pocket PC 2003连接到Microsoft ActiveSync. 1 ...

  9. Hadoop笔记

    教程: Elasticsearch.MongoDB和Hadoop比较:  http://blog.csdn.net/hong0220/article/details/47631409

  10. ReentrantLock实现原理深入探究

    前言 这篇文章被归到Java基础分类中,其实真的一点都不基础.网上写ReentrantLock的使用.ReentrantLock和synchronized的区别的文章很多,研究ReentrantLoc ...