View Code
  1 public class MySqlHelper
  2 {
  3 
  4         //数据库连接字符串
  5         public static string Conn = "Database='数据库名';Data Source='服务器IP地址';User Id='用户名';Password='密码';charset='utf8';pooling=true";
  6         // 用于缓存参数的HASH表
  7         private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
  8 
  9         /// <summary>
 10         ///  给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
 11         /// </summary>
 12         /// <param name="connectionString">一个有效的连接字符串</param>
 13         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
 14         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
 15         /// <param name="commandParameters">执行命令所用参数的集合</param>
 16         /// <returns>执行命令所影响的行数</returns>
 17         public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
 18         {
 19 
 20             MySqlCommand cmd = new MySqlCommand();
 21             using (MySqlConnection conn = new MySqlConnection(connectionString))
 22             {
 23                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
 24                 int val = cmd.ExecuteNonQuery();
 25                 cmd.Parameters.Clear();
 26                 return val;
 27             }
 28         }
 29 
 30 
 31         /// <summary>
 32         /// 用执行的数据库连接执行一个返回数据集的sql命令
 33         /// </summary>
 34         /// <remarks>
 35         /// 举例:
 36         ///  MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
 37         /// </remarks>
 38         /// <param name="connectionString">一个有效的连接字符串</param>
 39         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
 40         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
 41         /// <param name="commandParameters">执行命令所用参数的集合</param>
 42         /// <returns>包含结果的读取器</returns>
 43         public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
 44         {
 45             //创建一个MySqlCommand对象
 46             MySqlCommand cmd = new MySqlCommand();
 47             //创建一个MySqlConnection对象
 48             MySqlConnection conn = new MySqlConnection(connectionString);
 49 
 50             //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
 51             //因此commandBehaviour.CloseConnection 就不会执行
 52             try
 53             {
 54                 //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
 55                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
 56                 //调用 MySqlCommand  的 ExecuteReader 方法
 57                 MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
 58                 //清除参数
 59                 cmd.Parameters.Clear();
 60                 return reader;
 61             }
 62             catch
 63             {
 64                 //关闭连接,抛出异常
 65                 conn.Close();
 66                 throw;
 67             }
 68         }
 69 
 70         /// <summary>
 71         /// 返回DataSet
 72         /// </summary>
 73         /// <param name="connectionString">一个有效的连接字符串</param>
 74         /// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
 75         /// <param name="cmdText">存储过程名称或者sql命令语句</param>
 76         /// <param name="commandParameters">执行命令所用参数的集合</param>
 77         /// <returns></returns>
 78         public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
 79         {
 80             //创建一个MySqlCommand对象
 81             MySqlCommand cmd = new MySqlCommand();
 82             //创建一个MySqlConnection对象
 83             MySqlConnection conn = new MySqlConnection(connectionString);
 84 
 85             //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
 86 
 87             try
 88             {
 89                 //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
 90                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
 91                 //调用 MySqlCommand  的 ExecuteReader 方法
 92                 MySqlDataAdapter adapter = new MySqlDataAdapter();
 93                 adapter.SelectCommand = cmd;
 94                 DataSet ds = new DataSet();
 95 
 96                 adapter.Fill(ds);
 97                 //清除参数
 98                 cmd.Parameters.Clear();
 99                 conn.Close();
100                 return ds;
101             }
102             catch (Exception e)
103             {
104                 throw e;
105             }
106 }

 

posted on 2012-05-11 13:07  捣乃忒  阅读(569)  评论(0编辑  收藏  举报