Mysql类为网络上收集的,没有测试过。。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data.Common; namespace CommonLib
{
public static class DB_MySQLA
{
//数据库连接字符串
public static string Conn = "";
//Conn ="Database='hello1';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true"; /// <summary>
/// 构造mysql的链接字符串
/// </summary>
/// <param name="strDataBase">数据库名称</param>
/// <param name="strDataource">服务器地址</param>
/// <param name="strUserID">用户编号</param>
/// <param name="strPWD">用户密码</param>
/// <param name="strCharset">字符集,一般默认为“utf8”;使用人员可填写为空</param>
public static void SetLinkString(string strDataBase, string strDataource, string strUserID, string strPWD, string strCharset)
{
if ((strDataBase == null) || (strDataBase.Length <= ) || (strDataource == null) || (strDataource.Length <= )
|| (strUserID == null) || (strUserID.Length <= ) || (strPWD == null) || (strPWD.Length <= ))
{
MessageBox.Show("输入的Mysql 链接字符串属性错误");
}
else
{
if ((strCharset != null) && (strCharset.Length > ))
{
Conn = "Database='" + strDataBase + "';Data Source='" + strDataource
+ "';User Id='" + strUserID + "';Password='" + strPWD + "';charset='" + strCharset + "';pooling=true";
}
else
{
Conn = "Database='" + strDataBase + "';Data Source='" + strDataource
+ "';User Id='" + strUserID + "';Password='" + strPWD + "';charset='utf8';pooling=true";
}
}
} // 用于缓存参数的HASH表
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); /// <summary>
/// 给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
/// </summary>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{ MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
} /// <summary>
/// 用现有的数据库连接执行一个sql命令(不返回数据集)
/// </summary>
/// <param name="connection">一个现有的数据库连接</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{ MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
} /// <summary>
///使用现有的SQL事务执行一个sql命令(不返回数据集)
/// </summary>
/// <remarks>
///举例:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="trans">一个现有的事务</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
} /// <summary>
/// 用执行的数据库连接执行一个返回数据集的sql命令
/// </summary>
/// <remarks>
/// 举例:
/// MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>包含结果的读取器</returns>
public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
//创建一个MySqlCommand对象
MySqlCommand cmd = new MySqlCommand();
//创建一个MySqlConnection对象
MySqlConnection conn = new MySqlConnection(connectionString); //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
//因此commandBehaviour.CloseConnection 就不会执行
try
{
//调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//调用 MySqlCommand 的 ExecuteReader 方法
MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//清除参数
cmd.Parameters.Clear();
return reader;
}
catch
{
//关闭连接,抛出异常
conn.Close();
throw;
}
} /// <summary>
/// 返回DataSet
/// </summary>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns></returns>
public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
//创建一个MySqlCommand对象
MySqlCommand cmd = new MySqlCommand();
//创建一个MySqlConnection对象
MySqlConnection conn = new MySqlConnection(connectionString); //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在, try
{
//调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//调用 MySqlCommand 的 ExecuteReader 方法
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet(); adapter.Fill(ds);
//清除参数
cmd.Parameters.Clear();
conn.Close();
return ds;
}
catch (Exception e)
{
throw e;
}
} /// <summary>
/// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
/// </summary>
/// <remarks>
///例如:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
///<param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection connection = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
} /// <summary>
/// 用指定的数据库连接执行一个命令并返回一个数据集的第一列
/// </summary>
/// <remarks>
/// 例如:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connection">一个存在的数据库连接</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{ MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
} /// <summary>
/// 将参数集合添加到缓存
/// </summary>
/// <param name="cacheKey">添加到缓存的变量</param>
/// <param name="commandParameters">一个将要添加到缓存的sql参数集合</param>
public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters)
{
parmCache[cacheKey] = commandParameters;
} /// <summary>
/// 找回缓存参数集合
/// </summary>
/// <param name="cacheKey">用于找回参数的关键字</param>
/// <returns>缓存的参数集合</returns>
public static MySqlParameter[] GetCachedParameters(string cacheKey)
{
MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey]; if (cachedParms == null)
return null; MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length]; for (int i = , j = cachedParms.Length; i < j; i++)
clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone(); return clonedParms;
} /// <summary>
/// 准备执行一个命令
/// </summary>
/// <param name="cmd">sql命令</param>
/// <param name="conn">OleDb连接</param>
/// <param name="trans">OleDb事务</param>
/// <param name="cmdType">命令类型例如 存储过程或者文本</param>
/// <param name="cmdText">命令文本,例如:Select * from Products</param>
/// <param name="cmdParms">执行命令的参数</param>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{ if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} } }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient; namespace CommonLib
{
public class DB_MySQLB
{
public static DataSet Adapter(string connstr, CommandType cmdType, string cmdText)
{
MySqlCommand cmd = new MySqlCommand();
DataSet ds = new DataSet(); MySqlConnection conn = new MySqlConnection(connstr); cmd.Connection = conn;
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
cmd.Connection.Open();
MySqlDataAdapter ada = new MySqlDataAdapter(cmd);
cmd.CommandTimeout = ;
ada.Fill(ds);
cmd.Connection.Close();
cmd.Dispose();
return ds;
}
public static DataSet Adapter(string connstr, string cmdText)
{
MySqlCommand cmd = new MySqlCommand();
DataSet ds = new DataSet(); MySqlConnection conn = new MySqlConnection(connstr); cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = cmdText;
cmd.Connection.Open();
MySqlDataAdapter ada = new MySqlDataAdapter(cmd);
cmd.CommandTimeout = ;
ada.Fill(ds);
cmd.Connection.Close();
cmd.Dispose();
return ds;
} /// <summary>
/// 执行无返回结果集操作,返回执行条数
/// </summary>
/// <param name="connstr">数据库连接串</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令内容</param>
/// <returns>执行条数</returns>
public static int ExecuteNonQuery(string connstr, CommandType cmdType, string cmdText)
{
MySqlCommand cmd = new MySqlCommand(); MySqlConnection conn = new MySqlConnection(connstr);
cmd.Connection = conn;
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
cmd.Connection.Open();
int val = cmd.ExecuteNonQuery();
cmd.Connection.Close();
cmd.Dispose();
return val;
}
public static int ExecuteNonQuery(string connstr, string cmdText)
{
MySqlCommand cmd = new MySqlCommand(); MySqlConnection conn = new MySqlConnection(connstr);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = cmdText;
cmd.Connection.Open();
int val = cmd.ExecuteNonQuery();
cmd.Connection.Close();
cmd.Dispose();
return val;
} /// <suPASSWORDary>
/// 执行无返回结果集操作
/// </suPASSWORDary>
/// <param name="connString">数据库连接串</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令内容</param>
/// <param name="cmdParms">参数</param>
/// <returns></returns>
public static int ExecuteNonQuery(string connString, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connString))
{
PrepareCommand(cmd, conn, null, CommandType.Text, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
} /// <suPASSWORDary>
/// 通过事务控制 ,执行一组无返回结果集操作
/// </suPASSWORDary>
/// <param name="connString">数据库连接串</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令内容</param>
/// <param name="cmdParms">参数</param>
/// <returns></returns>
public static int ExecuteNonQuery(string connString, List<string> listCmdText, List<MySqlParameter[]> listCmdParms)
{
if (listCmdText.Count != listCmdParms.Count)
{
return -;
}
int val = ;
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connString))
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
MySqlTransaction trans = conn.BeginTransaction();
try
{
for (int i = ; i < listCmdText.Count; i++)
{
PrepareCommand(cmd, conn, trans, CommandType.Text, listCmdText[i], listCmdParms[i]);
val += cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
trans.Commit();
}
catch(Exception ex)
{
trans.Rollback();
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
throw ex;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
return val;
} /// </suPASSWORDary>
/// <param name="connString">数据库连接</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令内容</param>
/// <param name="cmdParms">参数</param>
/// <returns>数据集</returns>
public static DataSet Adapter(string connString, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
DataSet ds = new DataSet();
using (MySqlConnection conn = new MySqlConnection(connString))
{
PrepareCommand(cmd, conn, null, CommandType.Text, cmdText, cmdParms);
MySqlDataAdapter ada = new MySqlDataAdapter(cmd);
ada.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
} /// <suPASSWORDary>
/// 准备执行
/// </suPASSWORDary>
/// <param name="cmd">命令对象</param>
/// <param name="conn">数据库连接对象</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令内容</param>
/// <param name="cmdParms">参数</param>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType; if (trans != null)
cmd.Transaction = trans; if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} /// <summary>
/// 测试数据库链接
/// </summary>
/// <param name="connstr">数据库连接串</param>
public static void TestConnection(string connstr)
{
MySqlCommand cmd = new MySqlCommand(); MySqlConnection conn = new MySqlConnection(connstr);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = string.Empty;
try
{
cmd.Connection.Open();
cmd.Dispose();
}
catch (Exception ex)
{
throw ex;
}
}
}
}

DB通用类:MySQL通用类的更多相关文章

  1. Django 1.6 基于类的通用视图

    Django 1.6 基于类的通用视图 最初 django 的视图都是用函数实现的,后来开发出一些通用视图函数,以取代某些常见的重复性代码.通用视图就像是一些封装好的处理器,使用它们的时候只须要给出特 ...

  2. 用基于类的通用视图处理表单(Class-based generic views)

    处理表单通常包含3步: 初始化GET(空白的后者预填充的表单) POST非法数据(通常重新显示带有错误信息的表单) POST合法数据(提交数据并重定向) 为了将你从这些烦人的重复步骤中解救出来,Dja ...

  3. 一个.NET通用JSON解析/构建类的实现(c#)转

    转自:http://www.cnblogs.com/xfrog/archive/2010/04/07/1706754.html NET通用JSON解析/构建类的实现(c#) 在.NET Framewo ...

  4. wemall app商城源码中基于PHP的通用的树型类代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  5. Django 基于类的通用视图

    在早期,我们认识到在视图开发过程中有共同的用法和模式.这时我们引入基于函数的通用视图来抽象这些模式以简化常见情形的视图开发. 基于函数视图的用法有以下三种: def index(request): r ...

  6. 15类Android通用流行框架

    15类Android通用流行框架 Android流行框架 缓存 DiskLruCache Java实现基于LRU的磁盘缓存 图片加载 Android Universal Image Loader 一个 ...

  7. [转]DbHelper通用数据库访问帮助类

    之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...

  8. 一个.NET通用JSON解析/构建类的实…

    一个.NET通用JSON解析/构建类的实现(c#) 在.NET Framework 3.5中已经提供了一个JSON对象的序列化工具,但是他是强类型的,必须先按JSON对象的格式定义一个类型,并将类型加 ...

  9. C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题

    C#字符串数组排序   //排序只带字符的数组,不带数字的 private   string[]   aa   ={ "a ", "c ", "b & ...

  10. Java中使用最频繁及最通用的Java工具类

    在Java中,工具类定义了一组公共方法,Java中使用最频繁及最通用的Java工具类. 一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.so ...

随机推荐

  1. System.Collections 学习

    public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); } public inter ...

  2. RESTful Web API 理解

    REST 是一种应用架构风格,不是一种标准,是面向资源架构(ROA)风格,与具体技术平台无关,REST架构的应用未必建立在Web之上,与之对应的是传统的Web Service 采用的面向操作的RPC架 ...

  3. oracle-gi安装

    ############################################### 在cs6.5,cs7.2上安装grid11.2.0.1 和database11.2.0.1还是有问题 1 ...

  4. ML(5)——神经网络3(随机初始化与梯度检验)

    随机初始化 在线性回归和逻辑回归中,使用梯度下降法之前,将θ设置为0向量,有时会习惯性的将神经网络中的权重全部初始化为0,然而这在神经网络中并不适用. 以简单的三层神经网络为例,将全部权重都设置为0, ...

  5. [转]JDK动态代理

    代理模式         代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间 ...

  6. oracle之 单实例监听修改端口

    Oracle 单一主机多个实例多个监听器配置要点   1. 一台服务器主机, 有多个实例, 如: TSDB/ORCL; 又需要配置多个监听器 2. 需要指定不同的LISTENER端口   3.pmon ...

  7. 记一个视频播放器插件 video.js

    最近在看扣丁学堂上面的一些视频, 突然对他用的视频播放器有点兴趣, 他也是采用的 ts切片播放, 如果使用传统的video标签是无法实现的 他使用的插件叫做 video.js 官网地址 官网提供的播放 ...

  8. centos7编译安装php7.2

    去官网下载php7.2安装包,选择一个结点下载:http://php.net/downloads.php 下载:wget -ivh http://cn.php.net/distributions/ph ...

  9. C# 中数据类型以及结构

    值类型:int.double.char.bool...,结构. 引用类型:类(string).接口.数组 Class1.cs using System; using System.Collection ...

  10. ES中文分词器之精确短语匹配(解决了match_phrase匹配不全的问题)

    分词器选择 调研了几种分词器,例如IK分词器,ansj分词器,mmseg分词器,发现IK的分词效果最好.举个例子: 词:<<是的>><span>哈<\span ...