架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 28217|回复: 3

[资料] c# 操作mysql数据库驱动以及帮助类

[复制链接]
发表于 2016-7-18 12:04:28 | 显示全部楼层 |阅读模式
  1. public abstract class MySqlHelper
  2.     {
  3.         //数据库连接字符串
  4.         public static string Conn = "Database='device_manage';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true;Allow Zero Datetime=True";
  5.         /// <summary>
  6.         /// 给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
  7.         /// </summary>
  8.         /// <param name="connectionString">一个有效的连接字符串</param>
  9.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  10.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  11.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  12.         /// <returns>执行命令所影响的行数</returns>
  13.         public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  14.         {
  15.             MySqlCommand cmd = new MySqlCommand();
  16.             using (MySqlConnection conn = new MySqlConnection(connectionString))
  17.             {
  18.                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  19.                 int val = cmd.ExecuteNonQuery();
  20.                 cmd.Parameters.Clear();
  21.                 return val;
  22.             }
  23.         }
  24.         /// <summary>
  25.         /// 用现有的数据库连接执行一个sql命令(不返回数据集)
  26.         /// </summary>
  27.         /// <param name="connection">一个现有的数据库连接</param>
  28.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  29.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  30.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  31.         /// <returns>执行命令所影响的行数</returns>
  32.         public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  33.         {
  34.             MySqlCommand cmd = new MySqlCommand();
  35.             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
  36.             int val = cmd.ExecuteNonQuery();
  37.             cmd.Parameters.Clear();
  38.             return val;
  39.         }
  40.         /// <summary>
  41.         ///使用现有的SQL事务执行一个sql命令(不返回数据集)
  42.         /// </summary>
  43.         /// <remarks>
  44.         ///举例:
  45.         /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  46.         /// </remarks>
  47.         /// <param name="trans">一个现有的事务</param>
  48.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  49.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  50.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  51.         /// <returns>执行命令所影响的行数</returns>
  52.         public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  53.         {
  54.             MySqlCommand cmd = new MySqlCommand();
  55.             PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
  56.             int val = cmd.ExecuteNonQuery();
  57.             cmd.Parameters.Clear();
  58.             return val;
  59.         }
  60.         /// <summary>
  61.         /// 用执行的数据库连接执行一个返回数据集的sql命令
  62.         /// </summary>
  63.         /// <remarks>
  64.         /// 举例:
  65.         /// MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  66.         /// </remarks>
  67.         /// <param name="connectionString">一个有效的连接字符串</param>
  68.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  69.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  70.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  71.         /// <returns>包含结果的读取器</returns>
  72.         public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  73.         {
  74.             //创建一个MySqlCommand对象
  75.             MySqlCommand cmd = new MySqlCommand();
  76.             //创建一个MySqlConnection对象
  77.             MySqlConnection conn = new MySqlConnection(connectionString);
  78.             //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
  79.             //因此commandBehaviour.CloseConnection 就不会执行
  80.             try
  81.             {
  82.                 //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
  83.                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  84.                 //调用 MySqlCommand 的 ExecuteReader 方法
  85.                 MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  86.                 //清除参数
  87.                 cmd.Parameters.Clear();
  88.                 return reader;
  89.             }
  90.             catch
  91.             {
  92.                 //关闭连接,抛出异常
  93.                 conn.Close();
  94.                 throw;
  95.             }
  96.         }
  97.         /// <summary>
  98.         /// 返回DataSet
  99.         /// </summary>
  100.         /// <param name="connectionString">一个有效的连接字符串</param>
  101.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  102.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  103.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  104.         /// <returns></returns>
  105.         public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  106.         {
  107.             //创建一个MySqlCommand对象
  108.             MySqlCommand cmd = new MySqlCommand();
  109.             //创建一个MySqlConnection对象
  110.             MySqlConnection conn = new MySqlConnection(connectionString);
  111.             //在这里我们用一个try/catch结构执行sql文本命令/存储过程,
  112.             //因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
  113.             try
  114.             {
  115.                 //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
  116.                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  117.                 //调用 MySqlCommand 的 ExecuteReader 方法
  118.                 MySqlDataAdapter adapter = new MySqlDataAdapter();
  119.                 adapter.SelectCommand = cmd;
  120.                 DataSet ds = new DataSet();
  121.                 adapter.Fill(ds);
  122.                 //清除参数
  123.                 cmd.Parameters.Clear();
  124.                 conn.Close();
  125.                 return ds;
  126.             }
  127.             catch (Exception e)
  128.             {
  129.                 throw e;
  130.             }
  131.         }
  132.         /// <summary>
  133.         /// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
  134.         /// </summary>
  135.         /// <remarks>
  136.         ///例如:
  137.         /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  138.         /// </remarks>
  139.         ///<param name="connectionString">一个有效的连接字符串</param>
  140.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  141.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  142.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  143.         /// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
  144.         public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  145.         {
  146.             MySqlCommand cmd = new MySqlCommand();
  147.             using (MySqlConnection connection = new MySqlConnection(connectionString))
  148.             {
  149.                 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
  150.                 object val = cmd.ExecuteScalar();
  151.                 cmd.Parameters.Clear();
  152.                 return val;
  153.             }
  154.         }
  155.         /// <summary>
  156.         /// 用指定的数据库连接执行一个命令并返回一个数据集的第一列
  157.         /// </summary>
  158.         /// <remarks>
  159.         /// 例如:
  160.         /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  161.         /// </remarks>
  162.         /// <param name="connection">一个存在的数据库连接</param>
  163.         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
  164.         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
  165.         /// <param name="commandParameters">执行命令所用参数的集合</param>
  166.         /// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
  167.         public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  168.         {
  169.             MySqlCommand cmd = new MySqlCommand();
  170.             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
  171.             object val = cmd.ExecuteScalar();
  172.             cmd.Parameters.Clear();
  173.             return val;
  174.         }
  175.         /// <summary>
  176.         /// 准备执行一个命令
  177.         /// </summary>
  178.         /// <param name="cmd">sql命令</param>
  179.         /// <param name="conn">OleDb连接</param>
  180.         /// <param name="trans">OleDb事务</param>
  181.         /// <param name="cmdType">命令类型例如 存储过程或者文本</param>
  182.         /// <param name="cmdText">命令文本,例如:Select * from Products</param>
  183.         /// <param name="cmdParms">执行命令的参数</param>
  184.         private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
  185.         {
  186.             if (conn.State != ConnectionState.Open)
  187.                 conn.Open();
  188.             cmd.Connection = conn;
  189.             cmd.CommandText = cmdText;
  190.             if (trans != null)
  191.                 cmd.Transaction = trans;
  192.             cmd.CommandType = cmdType;
  193.             if (cmdParms != null)
  194.             {
  195.                 foreach (MySqlParameter parm in cmdParms)
  196.                     cmd.Parameters.Add(parm);
  197.             }
  198.         }
  199.     }
复制代码

QQ截图20160718120201.jpg
.net 2.0 .net4.0 .net 4.5帮助类下载:

游客,如果您要查看本帖隐藏内容请回复





上一篇:.net 网站读取大文件
下一篇:mysql表字段或者变量是关键词的解决办法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-7-18 12:37:55 | 显示全部楼层
官方驱动下载地址:  http://dev.mysql.com/downloads/connector/net/
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-7-16 13:15:44 | 显示全部楼层
12312312312
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-11-10 15:07:55 | 显示全部楼层
看看谢谢
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-7-18 14:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表