本文转自:http://de.cel.blog.163.com/blog/static/5145123620110181003903/

类似于SQLHelper,只是这里引用的是MySql.Data类库,而不是System.Data.SqlClient;因为.Net框架里面并不包 含些类库,好在咱们有强大的网友有做好的MySql.Data类库。在网上一搜MySql.Data就可以找到的。注意一定要先添加对 MySql.Data的引用哦,接下来是MySQLHelper的类库代码。

using System.Data;
using MySql.Data.MySqlClient;

namespace MySQLHelper
{

/// <summary>

/// 基于MySQL的数据层基类

/// </summary>

/// <remarks>

/// 参考于MS Petshop 4.0

/// </remarks>

public abstract class MySqlHelper
    {

#region 数据库连接字符串

public static readonly string DBConnectionString =
System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString();

//public static readonly string DBConnectionString =
"Server=localhost;DataBase=menagerie;Uid=de.cel;Pwd=de.cel";  
//在MySql中localhost好像不能用"."代替,我试了一下,会出错。
        #endregion

#region PrepareCommand

/// <summary>

/// Command预处理

/// </summary>

/// <param name="conn">MySqlConnection对象</param>

/// <param name="trans">MySqlTransaction对象,可为null</param>

/// <param name="cmd">MySqlCommand对象</param>

/// <param name="cmdType">CommandType,存储过程或命令行</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组,可为null</param>

private static void PrepareCommand(MySqlConnection conn,
MySqlTransaction trans, MySqlCommand cmd, 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);

}

}

#endregion

#region ExecuteNonQuery

/// <summary>

/// 执行命令

/// </summary>

/// <param name="connectionString">数据库连接字符串</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组</param>

/// <returns>返回受引响的记录行数</returns>

public static int ExecuteNonQuery(string connectionString, CommandType
cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

using (MySqlConnection conn = new MySqlConnection(connectionString))
            {

PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);

int val = cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

return val;

}

}

/// <summary>

/// 执行命令

/// </summary>

/// <param name="conn">Connection对象</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组</param>

/// <returns>返回受引响的记录行数</returns>

public static int ExecuteNonQuery(MySqlConnection conn, CommandType
cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);

int val = cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

return val;

}

/// <summary>

/// 执行事务

/// </summary>

/// <param name="trans">MySqlTransaction对象</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组</param>

/// <returns>返回受引响的记录行数</returns>

public static int ExecuteNonQuery(MySqlTransaction trans, CommandType
cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

PrepareCommand(trans.Connection, trans, cmd, cmdType, cmdText, cmdParms);

int val = cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

return val;

}

#endregion

#region ExecuteScalar

/// <summary>

/// 执行命令,返回第一行第一列的值

/// </summary>

/// <param name="connectionString">数据库连接字符串</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组</param>

/// <returns>返回Object对象</returns>

public static object ExecuteScalar(string connectionString, CommandType
cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

using (MySqlConnection connection = new MySqlConnection(connectionString))
            {

PrepareCommand(connection, null, cmd, cmdType, cmdText, cmdParms);

object val = cmd.ExecuteScalar();

cmd.Parameters.Clear();

return val;

}

}

/// <summary>

/// 执行命令,返回第一行第一列的值

/// </summary>

/// <param name="connectionString">数据库连接字符串</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组</param>

/// <returns>返回Object对象</returns>

public static object ExecuteScalar(MySqlConnection conn, CommandType
cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);

object val = cmd.ExecuteScalar();

cmd.Parameters.Clear();

return val;

}

#endregion

#region ExecuteReader

/// <summary>

/// 执行命令或存储过程,返回MySqlDataReader对象

/// 注意MySqlDataReader对象使用完后必须Close以释放MySqlConnection资源

/// </summary>

/// <param name="connectionString">数据库连接字符串</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组</param>

/// <returns></returns>

public static MySqlDataReader ExecuteReader(string connectionString,
CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

MySqlConnection conn = new MySqlConnection(connectionString);

try
            {

PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);

MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

cmd.Parameters.Clear();

return dr;

}

catch
            {

conn.Close();

throw;

}

}

#endregion

#region ExecuteDataSet

/// <summary>

/// 执行命令或存储过程,返回DataSet对象

/// </summary>

/// <param name="connectionString">数据库连接字符串</param>

/// <param name="cmdType">命令类型(存储过程或SQL语句)</param>

/// <param name="cmdText">SQL语句或存储过程名</param>

/// <param name="cmdParms">MySqlCommand参数数组(可为null值)</param>

/// <returns></returns>

public static DataSet ExecuteDataSet(string connectionString,
CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
        {

MySqlCommand cmd = new MySqlCommand();

using (MySqlConnection conn = new MySqlConnection(connectionString))
            {

PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);

MySqlDataAdapter da = new MySqlDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds);

conn.Close();

cmd.Parameters.Clear();

return ds;

}

}

#endregion

}//end class

}

[转]MySQLHelper类的更多相关文章

  1. PHP简单封装MysqlHelper类

    MysqlHelper.class.php 1: <?php 2:  3: /** 4: * Mysql数据帮助类 5: */ 6: class MysqlHelper 7: { 8: func ...

  2. MysqlHelper类

    连接方式:server=localhost;port=3306;userid=root;password=123456789;database=mysql;persist security info= ...

  3. 用于Mysql操作的MySqlHelper类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...

  4. C# 基于MySQL的数据层基类(MySQLHelper)

    这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作. 1.将MySql.Data.dll引用到你的项目中 下载地址:MyS ...

  5. 在.NET连接MySQL以及封装好的MySQLHelper.cs

    1.首先上MySQL网站下驱动:http://www.mysql.com/products/connector/ 2.安装下载的安装包 3.我们在Visual Studio里创建一个Web Appli ...

  6. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  7. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  8. C# vs MySql

    MySqlHelper类 /// <summary> ///MySql操作类 /// </summary> public abstract class MySqlHelper ...

  9. .Net中如何使用MySql连接池

    提供一份官方的译文.翻译也挺辛苦的!! 6.4 Using Connector/Net with Connection Pooling 6.4在Connector/Net中使用连接池 The Conn ...

随机推荐

  1. HTTP 413报错

    在php中通过flash上传文件到服务器端时报413错误,原来一直以为是php.ini配置的问题,但是检查了php.ini的配置以后,发现不是php.ini的问题,最后是通过Http Analyzer ...

  2. HH生病了(hpu1136)

    HH生病了 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 324  Solved: 90 [Submit][Status][Web Board] De ...

  3. javascript进阶教程第一章案例实战

    javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了“删除”按钮,在用 ...

  4. vue -- config index.js 配置文件详解

    此文章介绍vue-cli脚手架config目录下index.js配置文件 此配置文件是用来定义开发环境和生产环境中所需要的参数 关于注释 当涉及到较复杂的解释我将通过标识的方式(如(1))将解释写到单 ...

  5. Mahout的推荐系统

    Mahout的推荐系统 什么是推荐系统 为什使用推荐系统 推荐系统中的算法 什么是推荐系统 为什么使用推荐系统? 促进厂商商品销售,帮助用户找到想要的商品 推荐系统无处不在,体现在生活的各个方面 图书 ...

  6. Webservice银行报文接口设计

      Preface: 合理的软件架构设计其好处是不言而喻的,系统具有清晰的软件结构,良好的可扩展性,类的职能单一明确,系统的复杂度底.此前的一个实际项目中总结了些关于OO设计的实际应用,主要是围绕'高 ...

  7. 洛谷 P2108 学英语

    P2108 学英语 题目描述 为了适应紧张的大学学习生活,小Z发愤图强开始复习巩固英语. 由于小Z对数学比较有好感,他首先复习了数词.小Z花了一整天的时间,终于把关于基数词的知识都搞懂了.于是小Z非常 ...

  8. UnrealEngine4针对游戏模式的思考

    游戏能够概括为三类:单进程联机(超级玛丽).小规模联机(魔兽争霸.CS),大规模联机(魔兽世界). watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmx1c ...

  9. screen-Orientation 横竖屏设置

    1.xml中设置,这个主要是在AndroidManifest.xml 中查找activity,然后在里面设置属性,如下 <application android:label="@str ...

  10. 建堆是 O(n) 的时间复杂度证明。

    建堆的复杂度先考虑满二叉树,和计算完全二叉树的建堆复杂度一样. 对满二叉树而言,第 \(i\) 层(根为第 \(0\) 层)有 \(2^i\) 个节点. 由于建堆过程自底向上,以交换作为主要操作,因此 ...