Mysql操作类封装【https://blog.csdn.net/blog_lee/article/details/45111489】

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Data;  
  6. using System.Configuration;  
  7. using System.Windows.Forms;  
  8.   
  9. using MySql.Data.MySqlClient;  
  10. using System.Xml;  
  11. using MySql.Data;  
  12.   
  13. /* 
  14.  * Author: Lee 
  15.  * Time: 2015-04-08 
  16.  * Info: 数据库封装操作类 
  17. */  
  18.   
  19. namespace Common   
  20. {  
  21.     public class DbManager  
  22.     {  
  23.         //连接用的字符串  
  24.         private string connStr;  
  25.         public string ConnStr   
  26.         {  
  27.             get { return this.connStr; }  
  28.             set { this.connStr = value; }  
  29.         }  
  30.   
  31.         private DbManager() { }  
  32.   
  33.         //DbManager单实例  
  34.         private static DbManager _instance = null;  
  35.         public static DbManager Ins  
  36.         {  
  37.             get { if (_instance == null) { _instance = new DbManager(); } return _instance; }  
  38.         }  
  39.   
  40.         /// <summary>  
  41.         /// 需要获得多个结果集的时候用该方法,返回DataSet对象。  
  42.         /// </summary>  
  43.         /// <param name="sql语句"></param>  
  44.         /// <returns></returns>  
  45.           
  46.         public DataSet ExecuteDataSet(string sql, params MySqlParameter[] paras)  
  47.         {  
  48.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  49.             {  
  50.                 //数据适配器  
  51.                 MySqlDataAdapter sqlda = new MySqlDataAdapter(sql, con);  
  52.                 sqlda.SelectCommand.Parameters.AddRange(paras);  
  53.                 DataSet ds = new DataSet();  
  54.                 sqlda.Fill(ds);  
  55.                 return ds;  
  56.                 //不需要打开和关闭链接.  
  57.             }  
  58.         }  
  59.   
  60.         /// <summary>  
  61.         /// 获得单个结果集时使用该方法,返回DataTable对象。  
  62.         /// </summary>  
  63.         /// <param name="sql"></param>  
  64.         /// <returns></returns>  
  65.   
  66.         public DataTable ExcuteDataTable(string sql, params MySqlParameter[] paras)  
  67.         {  
  68.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  69.             {  
  70.                 MySqlDataAdapter sqlda = new MySqlDataAdapter(sql, con);  
  71.                 sqlda.SelectCommand.Parameters.AddRange(paras);  
  72.                 DataTable dt = new DataTable();  
  73.                 sqlda.Fill(dt);  
  74.                 return dt;  
  75.             }  
  76.         }  
  77.   
  78.   
  79.         /// <summary>     
  80.         /// 执行一条计算查询结果语句,返回查询结果(object)。     
  81.         /// </summary>     
  82.         /// <param name="SQLString">计算查询结果语句</param>     
  83.         /// <returns>查询结果(object)</returns>     
  84.         public object ExecuteScalar(string SQLString, params MySqlParameter[] paras)  
  85.         {  
  86.             using (MySqlConnection connection = new MySqlConnection(ConnStr))  
  87.             {  
  88.                 using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))  
  89.                 {  
  90.                     try  
  91.                     {  
  92.                         connection.Open();  
  93.                         cmd.Parameters.AddRange(paras);  
  94.                         object obj = cmd.ExecuteScalar();  
  95.                         if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))  
  96.                         {  
  97.                             return null;  
  98.                         }  
  99.                         else  
  100.                         {  
  101.                             return obj;  
  102.                         }  
  103.                     }  
  104.                     catch (MySql.Data.MySqlClient.MySqlException e)  
  105.                     {  
  106.                         connection.Close();  
  107.                         throw e;  
  108.                     }  
  109.                 }  
  110.             }  
  111.         }     
  112.   
  113.         /// <summary>  
  114.         /// 执行Update,Delete,Insert操作  
  115.         /// </summary>  
  116.         /// <param name="sql"></param>  
  117.         /// <returns></returns>  
  118.         public int ExecuteNonquery(string sql, params MySqlParameter[] paras)  
  119.         {  
  120.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  121.             {  
  122.                 MySqlCommand cmd = new MySqlCommand(sql, con);  
  123.                 cmd.Parameters.AddRange(paras);  
  124.                 con.Open();  
  125.                 return cmd.ExecuteNonQuery();  
  126.             }  
  127.         }  
  128.   
  129.         /// <summary>  
  130.         /// 调用存储过程 无返回值  
  131.         /// </summary>  
  132.         /// <param name="procname">存储过程名</param>  
  133.         /// <param name="paras">sql语句中的参数数组</param>  
  134.         /// <returns></returns>  
  135.         public int ExecuteProcNonQuery(string procname, params MySqlParameter[] paras)  
  136.         {  
  137.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  138.             {  
  139.                 MySqlCommand cmd = new MySqlCommand(procname, con);  
  140.                 cmd.CommandType = CommandType.StoredProcedure;  
  141.                 cmd.Parameters.AddRange(paras);  
  142.                 con.Open();  
  143.                 return cmd.ExecuteNonQuery();  
  144.             }  
  145.         }  
  146.   
  147.         /// <summary>  
  148.         /// 存储过程 返回Datatable  
  149.         /// </summary>  
  150.         /// <param name="procname"></param>  
  151.         /// <param name="paras"></param>  
  152.         /// <returns></returns>  
  153.         public DataTable ExecuteProcQuery(string procname, params MySqlParameter[] paras)  
  154.         {  
  155.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  156.             {  
  157.                 MySqlCommand cmd = new MySqlCommand(procname, con);  
  158.                 cmd.CommandType = CommandType.StoredProcedure;  
  159.                 MySqlDataAdapter sqlda = new MySqlDataAdapter(procname, con);  
  160.                 sqlda.SelectCommand.Parameters.AddRange(paras);  
  161.                 DataTable dt = new DataTable();  
  162.                 sqlda.Fill(dt);  
  163.                 return dt;  
  164.             }  
  165.         }  
  166.   
  167.         /// <summary>  
  168.         /// 多语句的事物管理  
  169.         /// </summary>  
  170.         /// <param name="cmds">命令数组</param>  
  171.         /// <returns></returns>  
  172.         public bool ExcuteCommandByTran(params MySqlCommand[] cmds)  
  173.         {  
  174.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  175.             {  
  176.                 con.Open();  
  177.                 MySqlTransaction tran = con.BeginTransaction();  
  178.                 foreach (MySqlCommand cmd in cmds)  
  179.                 {  
  180.                     cmd.Connection = con;  
  181.                     cmd.Transaction = tran;  
  182.                     cmd.ExecuteNonQuery();  
  183.                 }  
  184.                 tran.Commit();  
  185.                 return true;  
  186.             }  
  187.         }  
  188.   
  189.         ///分页  
  190.         public DataTable ExcuteDataWithPage(string sql, ref int totalCount, params MySqlParameter[] paras)  
  191.         {  
  192.             using (MySqlConnection con = new MySqlConnection(ConnStr))  
  193.             {  
  194.                 MySqlDataAdapter dap = new MySqlDataAdapter(sql, con);  
  195.                 DataTable dt = new DataTable();  
  196.                 dap.SelectCommand.Parameters.AddRange(paras);  
  197.                 dap.Fill(dt);  
  198.                 MySqlParameter ttc = dap.SelectCommand.Parameters["@totalCount"];  
  199.                 if (ttc != null)  
  200.                 {  
  201.                     totalCount = Convert.ToInt32(ttc.Value);  
  202.                 }  
  203.                 return dt;  
  204.             }  
  205.         }  
  206.           
  207.     }  
  208. }  
[csharp] view plain copy
 
  1. //C#调用例子  
  2. DbManager.Ins.ConnStr = "Mysql地址 密码等"  
  3.         string sql = @"select * from log_account where (createtime between @startTime and @endTime) and (serverinfo like @serverinfo)";  
  4.         List<MySqlParameter> Paramter = new List<MySqlParameter>();  
  5.         Paramter.Add(new MySqlParameter("@startTime", startTime));  
  6.         Paramter.Add(new MySqlParameter("@endTime", endTime));  
  7.         Paramter.Add(new MySqlParameter("@serverinfo", (ConfManager.Ins.currentConf.serverid + "-%")));  
  8.         DataTable data = DbManager.Ins.ExcuteDataTable(sql, Paramter.ToArray());  
原文地址:https://www.cnblogs.com/jingxuan-li/p/8653747.html