using System;

using System.Data;

using MySql.Data;

using MySql.Data.MySqlClient;

namespace DBUtility

{

///

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

///

///

/// 参考于MS Petshop 4.0

///

public abstract class MySqlHelper

{

#region 数据库连接字符串

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

#endregion

#region PrepareCommand

///

/// Command预处理

///

/// MySqlConnection对象

/// MySqlTransaction对象,可为null

/// MySqlCommand对象

/// CommandType,存储过程或命令行

/// SQL语句或存储过程名

/// MySqlCommand参数数组,可为null

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

///

/// 执行命令

///

/// 数据库连接字符串

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组

/// 返回受引响的记录行数

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;

}

}

///

/// 执行命令

///

/// Connection对象

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组

/// 返回受引响的记录行数

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;

}

///

/// 执行事务

///

/// MySqlTransaction对象

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组

/// 返回受引响的记录行数

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

///

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

///

/// 数据库连接字符串

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组

/// 返回Object对象

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;

}

}

///

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

///

/// 数据库连接字符串

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组

/// 返回Object对象

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

///

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

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

///

/// 数据库连接字符串

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组

///

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

///

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

///

/// 数据库连接字符串

/// 命令类型(存储过程或SQL语句)

/// SQL语句或存储过程名

/// MySqlCommand参数数组(可为null值)

///

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

}

using System;

using System.Collections;

using System.Configuration;

using MySql.Data;

using MySql.Data.MySqlClient;

using System.Data;

namespace DBTranslater

{

///

///SQLHelper 的摘要说明

///

public abstract class MySqlHelper

{

//数据库连接字符串

public static string Conn = "Database='mydb';Data Source='localhost';User Id='root';Password='admin';charset='utf8'";

// 用于缓存参数的HASH表

private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

///

/// 给定连接的数据库用假设参数执行一个sql命令(不返回数据集)

///

/// 一个有效的连接字符串

/// 命令类型(存储过程, 文本, 等等)

/// 存储过程名称或者sql命令语句

/// 执行命令所用参数的集合

/// 执行命令所影响的行数

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;

}

}

///

/// 用现有的数据库连接执行一个sql命令(不返回数据集)

///

mysql的数据层基类_C# 基于MySQL的数据层基类(MySQLHelper)相关推荐

  1. PHP用于登录的类,基于MySQL

    <? /* *  描述:PHP用于登录的类,基于MySQL */ class Login {     var $username;    //用户名     var $userpass;    ...

  2. ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式

    一.ADO.NET是什么,有什么用 数据库访问技术 ado.net可让开发人员以一致的方式存取资料来源, 资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取.处理及更新其中所 ...

  3. mysql分布式数据库实践论文_新浪微博基于MySQL的分布式数据库实践

    提起微博,相信大家都是很了解的.但是有谁知道微博的数据库架构是怎样的呢?在今天举行的2011数据库技术大会上,新浪首席DBA杨海潮为我们详细解读了新浪微博的数据库架构--基于MySQL的分布式数据库实 ...

  4. html webservice数据交互_一种基于WebService的数据交换方法

    一种基于WebService的数据交换方法 [专利摘要]本发明涉及数据交换[技术领域],特别涉及一种基于WebService的数据交换方法.本发明是以Web服务为依托,通过定义参数的方式进行传入内容和 ...

  5. dom4j工具类_基于DOM4J的XML文件解析类

    XML文件解析分四类方式:DOM解析:SAX解析:JDOM解析:DOM4J解析.其中前两种属于基础方法,是官方提供的平台无关的解析方式:后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于ja ...

  6. 基于html5的数据可视化实现方法研究,基于HTML5的数据可视化实现方法研究

    信息科技 Information Technology 基于HTML5的数据可视化实现方法研究 高科同济大学电子与信息学院,上海 201804摘要 HTML5的出现,为数据可视化提供了新的实现方法.本 ...

  7. c winform mysql类_C#连接MySQL数据库操作类

    首先需要安装MySQL Connector Net 6.8.3 然后在项目中引用MySQL Connector,如下图所示 C#连接MySQL的操作类代码如下:public class MySQLHe ...

  8. mysql表 c#实体类,创建基于MySQL表中的C#类

    Is there anything built into .Net or visual studio that will allow my to create classes based off of ...

  9. 基于mysql和php的分布式事务处理1,基于MySQL和PHP的分布式事务处理

    PHP(超级文本预处理语言)是一种基于服务器端.执行效率高且易于开发的HTML内嵌式语言,是用户生成动态网页的工具之一[1].MySQL是全球最受欢迎的小型开放源码的关系型数据库管理系统,其体积小.速 ...

最新文章

  1. elasticsearch常见属性单词解释
  2. vue调用百度地图API
  3. JavaFX8 modena样式(css)源码
  4. 深入理解和应用Float属性
  5. jeesite缓存问题
  6. git push 提交时显示 Empty reply from server的解决办法
  7. 可在单片机上运行的简易图形库
  8. 机器学习方法_机器学习模型应用方法综述
  9. 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件
  10. Android 横屏启动activity,点击屏幕的单击、双击和长按事件
  11. 警惕!有“庄家”“大V”联合诱骗投资者,忽悠式荐股
  12. 算法之【辗转相除法】
  13. python selenium定位元素方法_[原创] python selenium 元素定位方法封装
  14. HALCON:lines_gauss用法解析
  15. js回文数的四种判断方法
  16. 日久见人心,以小见大
  17. linux系统如何使用qq,Linux系统中怎么使用QQ
  18. Win11怎么不让软件联网?Win11禁止某个软件联网的方法
  19. 哪里有周末java培训_北京哪里里Java周末学习班
  20. 关于区块链安全方面的文献

热门文章

  1. 设计模式:java及spring观察者模式(有利于代码解耦)
  2. CodeForces - 986E Prince's Problem
  3. thinkphp视图中插入php代码
  4. Python处理Excel文档之openpyxl (三)简单的使用
  5. C#指南,重温基础,展望远方!(8)C#数组
  6. java.lang.NumberFormatException: For input string:
  7. 最新实战讲解.htaccess文件rewrite规则
  8. [转载] set集合python_python基础-set集合
  9. [转载] 用python语言设计计时器
  10. Linux:用户管理