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. Road Crossing Game Template 学习

    using UnityEngine; using System; namespace RoadCrossing.Types { /// <summary> /// 小路 /// </ ...

  2. egret学习

    1.egret wing4.0不能创建egret游戏项目, 重置了引擎之后就可以了 2.入门介绍:http://developer.egret.com/cn/github/egret-docs/Eng ...

  3. VS 文件共享

    按照这个顺序:选中项目,鼠标右键菜单==〉添加==〉添加现有项==〉选择相应的文件==〉添加为链接注意,最后一步,添加按钮上有一个表示下拉的小三角,点击它就能看到“添加为链接”选项了.用的是VS201 ...

  4. 推荐一篇文章 《为什么C语言不会过时?》

    <为什么C语言不会过时?>    文章地址 : https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665515153&a ...

  5. linux修改文件所有者和文件所在组 【转载】

    chgrp  用户名    文件名  -R chown 用户名   文件名  -R -R表示递归目录下所有文件 以上部分已验证  地址原贴

  6. 并发运算lib

    最近对类似于erlang或者golang的并发运算很感兴趣.以下是看到的相关资料. libgo c++,技术:协程,多线程.这是俺发现的用法最漂亮的c++库,用法参考golang CAF 全称c++ ...

  7. egg-init 知识点

    Create a simple type application $ egg-init --type simple [dest]

  8. linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示“Input your choice:”,把用户的输入保存入变量choice_user中read -p "Inp ...

  9. 关键字:this、ref、out

    Class1.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  10. C/C++中带可变参数的函数

    1.带可变参数的函数由来 当函数中的参数个数不确定时,这时候就需要带可变参数的函数! 如我们经常使用的C库函数printf()实际就是一个可变参数的函数, 其原型为: int printf( cons ...