MySqlHelper.cs代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;using System.Data;using System.Collections;using MySql.Data.MySqlClient;using MySql.Data.Types;using System.Configuration;using System.IO;public abstract class MySqlHelper{ //Get the database connectionstring, which are static variables and readonly, all PRoject documents can be used directly, but can not modify it //the database connectionString //public static readonly string connectionStringManager = ConfigurationManager.ConnectionStrings["MYSQLConnectionString"].ConnectionString; public static string ConnectionStringManager { get { return connectionStringManager; } } //This connectionString for the local test public static readonly string connectionStringManager = System.Configuration.ConfigurationManager.AppSettings["MySQLConnString"]; //ConfigurationManager.ConnectionStrings["MySQLConnString"].ConnectionString; //hashtable to store the parameter information, the hash table can store any type of argument //Here the hashtable is static types of static variables, since it is static, that is a definition of global use. //All parameters are using this hash table, how to ensure that others in the change does not affect their time to read it //Before ,the method can use the lock method to lock the table, does not allow others to modify.when it has readed then unlocked table. //Now .NET provides a HashTable's Synchronized methods to achieve the same function, no need to manually lock, completed directly by the system framework private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); /// <summary> /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring /// The parameter list using parameters that in array forms /// </summary> /// <remarks> /// Usage example: /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, /// "PublishOrders", new MySqlParameter("@prodid", 24)); /// </remarks> /// <param name="connectionString">a valid database connectionstring</param> /// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.) </param> /// <param name="cmdText">stored procedure name or T-SQL statement</param> /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param> /// <returns>Returns a value that means number of rows affected/returns> 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; } } /// <summary> /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring /// The parameter list using parameters that in array forms /// </summary> /// <remarks> /// Usage example: /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, /// "PublishOrders", new MySqlParameter("@prodid", 24)); /// </remarks> /// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.) </param> /// <param name="connectionString">a valid database connectionstring</param> /// <param name="cmdText">stored procedure name or T-SQL statement</param> /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param> /// <returns>Returns true or false </returns> public static bool ExecuteNonQuery(CommandType cmdType, string connectionString, string cmdText, params MySqlParameter[] commandParameters) { MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connectionString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); try { int val = cmd.ExecuteNonQuery(); return true; } catch { return false; } finally { cmd.Parameters.Clear(); } } } /// <summary> /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring /// Array of form parameters using the parameter list /// </summary> /// <param name="conn">connection</param> /// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.)</param> /// <param name="cmdText">stored procedure name or T-SQL statement</param> /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param> /// <returns>Returns a value that means number of rows affected</returns> public static int ExecuteNonQuery(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters) { MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } /// <summary> /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring /// Array of form parameters using the parameter list /// </summary> /// <param name="conn">sql Connection that has transaction</param> /// <param name="cmdType">SqlCommand command type (stored procedures, T-SQL statement, and so on.)</param> /// <param name="cmdText">stored procedure name or T-SQL statement</param> /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param> /// <returns>Returns a value that means number of rows affected </returns> public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters) { MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } /// <summary> /// Call method of sqldatareader to read data /// </summary> /// <param name="connectionString">connectionstring</param> /// <param name="cmdType">command type, such as using stored procedures: CommandType.StoredProcedure</param> /// <param name="cmdText">stored procedure name or T-SQL statement</param> /// <param name="commandParameters">parameters</param> /// <returns>SqlDataReader type of data collection</returns> public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters) { MySqlCommand cmd = new MySqlCommand(); MySqlConnection conn = new MySqlConnection(connectionString); // we use a try/catch here because if the method throws an exception we want to // close the connection throw code, because no datareader will exist, hence the // commandBehaviour.CloseConnection will not work try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Cl
新闻热点
疑难解答