zoukankan      html  css  js  c++  java
  • MySql数据库操作类---MySqlHelper

     /// <summary>
        /// MySql数据库操作类
        /// </summary>
    
        public class MySqlHelper
        {
            public static string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString;
            ////存储过程
            public static DataTable ExecuteDataTableCommand(string CommandText)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = CommandText;
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            da.Fill(ds, "ds");
                            cmd.Parameters.Clear();
                        }
                        catch (MySql.Data.MySqlClient.MySqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        return ds.Tables[0];
                    }
                }
            }
    
            #region ExecuteNonQuery
    
            //执行SQL语句,返回影响的记录数
            /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteNonQuery(string SQLString)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteNonQuery(string SQLString, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    using (MySqlCommand cmd = new MySqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                            int rows = cmd.ExecuteNonQuery();
                            cmd.Parameters.Clear();
                            return rows;
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            throw e;
                        }
                    }
                }
            }
    
            /// <summary>
            /// 是否存在
            /// </summary>
            /// <param name="strSql"></param>
            /// <returns></returns>
            public static bool Exists(string strSql)
            {
                object obj = GetSingle(strSql);
                int cmdresult;
                if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                {
                    cmdresult = 0;
                }
                else
                {
                    cmdresult = 1;
                }
                if (cmdresult == 0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
    
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object GetSingle(string SQLString)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            public static object GetSingle(string SQLString, int Times)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            cmd.CommandTimeout = Times;
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            //执行多条SQL语句,实现数据库事务。
            /// <summary>
            /// 执行多条SQL语句,实现数据库事务。
            /// </summary>
            /// <param name="SQLStringList">多条SQL语句</param>
            public static bool ExecuteNoQueryTran(List<String> SQLStringList)
            {
                using (MySqlConnection conn = new MySqlConnection(connectionString))
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = conn;
                    MySqlTransaction tx = conn.BeginTransaction();
                    cmd.Transaction = tx;
                    try
                    {
                        for (int n = 0; n < SQLStringList.Count; n++)
                        {
                            string strsql = SQLStringList[n];
                            if (strsql.Trim().Length > 1)
                            {
                                cmd.CommandText = strsql;
                                PrepareCommand(cmd, conn, tx, strsql, null);
                                cmd.ExecuteNonQuery();
                            }
                        }
                        cmd.ExecuteNonQuery();
                        tx.Commit();
                        return true;
                    }
                    catch
                    {
                        tx.Rollback();
                        return false;
                    }
                }
            }
    
            #endregion ExecuteNonQuery
    
            #region ExecuteScalar
    
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object ExecuteScalar(string SQLString)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object ExecuteScalar(string SQLString, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    using (MySqlCommand cmd = new MySqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                            object obj = cmd.ExecuteScalar();
                            cmd.Parameters.Clear();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            throw e;
                        }
                    }
                }
            }
    
            #endregion ExecuteScalar
    
            #region ExecuteReader
    
            /// <summary>
            /// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>MySqlDataReader</returns>
            public static MySqlDataReader ExecuteReader(string strSQL)
            {
                MySqlConnection connection = new MySqlConnection(connectionString);
                MySqlCommand cmd = new MySqlCommand(strSQL, connection);
                try
                {
                    connection.Open();
                    MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return myReader;
                }
                catch (MySql.Data.MySqlClient.MySqlException e)
                {
                    throw e;
                }
            }
    
            /// <summary>
            /// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>MySqlDataReader</returns>
            public static MySqlDataReader ExecuteReader(string SQLString, params MySqlParameter[] cmdParms)
            {
                MySqlConnection connection = new MySqlConnection(connectionString);
                MySqlCommand cmd = new MySqlCommand();
                try
                {
                    PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                    MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return myReader;
                }
                catch (MySql.Data.MySqlClient.MySqlException e)
                {
                    throw e;
                }
                // finally
                // {
                // cmd.Dispose();
                // connection.Close();
                // }
            }
    
            #endregion ExecuteReader
    
            #region ExecuteDataTable
    
            /// <summary>
            /// 执行查询语句,返回DataTable
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataTable</returns>
            public   DataTable ExecuteDataTable(string SQLString)
            {
                //connectionString = System.Configuration.ConfigurationManager.AppSettings["MySQLconn"];
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                        command.Fill(ds, "ds");
                    }
                    catch (MySql.Data.MySqlClient.MySqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    connection.Close();
                    return ds.Tables[0];
                }
            }
    
            #region ExecuteDataTable
    
            /// <summary>
            /// 执行查询语句,返回DataTable
            /// </summary>
            /// <param name="db">数据库类型(Nozzle,Feeder,Head)</param>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataTable</returns>
            public static DataTable ExecuteDataTable(string db, string SQLString)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                        command.Fill(ds, "ds");
                    }
                    catch (MySql.Data.MySqlClient.MySqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    return ds.Tables[0];
                }
            }
    
            #endregion ExecuteDataTable
    
            /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataTable</returns>
            public static DataTable ExecuteDataTable(string SQLString, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    MySqlCommand cmd = new MySqlCommand();
                    PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            da.Fill(ds, "ds");
                            cmd.Parameters.Clear();
                        }
                        catch (MySql.Data.MySqlClient.MySqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        return ds.Tables[0];
                    }
                }
            }
    
            //获取起始页码和结束页码
            public static DataTable ExecuteDataTable(string cmdText, int startResord, int maxRecord)
            {
                using (MySqlConnection connection = new MySqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        MySqlDataAdapter command = new MySqlDataAdapter(cmdText, connection);
                        command.Fill(ds, startResord, maxRecord, "ds");
                    }
                    catch (MySql.Data.MySqlClient.MySqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    return ds.Tables[0];
                }
            }
    
            #endregion ExecuteDataTable
    
            /// <summary>
            /// 获取分页数据 在不用存储过程情况下
            /// </summary>
            /// <param name="recordCount">总记录条数</param>
            /// <param name="selectList">选择的列逗号隔开,支持top num</param>
            /// <param name="tableName">表名字</param>
            /// <param name="whereStr">条件字符 必须前加 and</param>
            /// <param name="orderExpression">排序 例如 ID</param>
            /// <param name="pageIdex">当前索引页</param>
            /// <param name="pageSize">每页记录数</param>
            /// <returns></returns>
            public   DataTable getPager(out int recordCount, string selectList, string tableName, string whereStr, string orderExpression, int pageIdex, int pageSize)
            {
                int rows = 0;
                DataTable dt = new DataTable();
                MatchCollection matchs = Regex.Matches(selectList, @"tops+d{1,}", RegexOptions.IgnoreCase);//含有top
                string sqlStr = sqlStr = string.Format("select {0} from {1} where 1=1 {2}", selectList, tableName, whereStr);
                if (!string.IsNullOrEmpty(orderExpression)) { sqlStr += string.Format(" Order by {0}", orderExpression); }
                if (matchs.Count > 0) //含有top的时候
                {
                    DataTable dtTemp = ExecuteDataTable(sqlStr);
                    rows = dtTemp.Rows.Count;
                }
                else //不含有top的时候
                {
                    string sqlCount = string.Format("select count(*) from {0} where 1=1 {1} ", tableName, whereStr);
                    //获取行数
                    object obj = ExecuteScalar(sqlCount);
                    if (obj != null)
                    {
                        rows = Convert.ToInt32(obj);
                    }
                }
                dt = ExecuteDataTable(sqlStr, (pageIdex - 1) * pageSize, pageSize);
                recordCount = rows;
                return dt;
            }
    
            #region 创建command
    
            private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, 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 = CommandType.Text;//cmdType;
                if (cmdParms != null)
                {
                    foreach (MySqlParameter parameter in cmdParms)
                    {
                        if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                        {
                            parameter.Value = DBNull.Value;
                        }
                        cmd.Parameters.Add(parameter);
                    }
                }
            }
    
            #endregion 创建command
    
        }

    调用

                MySqlHelper mySqlHelper = new MySqlHelper();
                var DTB = mySqlHelper.ExecuteDataTable("  select * from testDB.t_test");

    修改版:

      /// <summary>
        /// MySql数据库操作类
        /// </summary>
    
        public class MySqlHelper
        {
           /// public static string connectionStringMYSQL = System.Configuration.ConfigurationManager.ConnectionStrings["EZRMySQL"].ConnectionString;
            ////存储过程
            public static DataTable ExecuteDataTableCommand(string CommandText,  string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = CommandText;
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            da.Fill(ds, "ds");
                            cmd.Parameters.Clear();
                        }
                        catch (MySql.Data.MySqlClient.MySqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        return ds.Tables[0];
                    }
                }
            }
    
            #region ExecuteNonQuery
    
            //执行SQL语句,返回影响的记录数
            /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteNonQuery(string SQLString, string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteNonQuery(string SQLString, string MySQLConStr, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    using (MySqlCommand cmd = new MySqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                            int rows = cmd.ExecuteNonQuery();
                            cmd.Parameters.Clear();
                            return rows;
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            throw e;
                        }
                    }
                }
            }
    
            /// <summary>
            /// 是否存在
            /// </summary>
            /// <param name="strSql"></param>
            /// <returns></returns>
            public static bool Exists(string strSql, string MySQLConStr)
            {
                object obj = GetSingle(strSql,   MySQLConStr);
                int cmdresult;
                if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                {
                    cmdresult = 0;
                }
                else
                {
                    cmdresult = 1;
                }
                if (cmdresult == 0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
    
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object GetSingle(string SQLString, string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            public static object GetSingle(string SQLString, int Times, string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            cmd.CommandTimeout = Times;
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            //执行多条SQL语句,实现数据库事务。
            /// <summary>
            /// 执行多条SQL语句,实现数据库事务。
            /// </summary>
            /// <param name="SQLStringList">多条SQL语句</param>
            public static bool ExecuteNoQueryTran(List<String> SQLStringList, string MySQLConStr)
            {
                using (MySqlConnection conn = new MySqlConnection(MySQLConStr))
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = conn;
                    MySqlTransaction tx = conn.BeginTransaction();
                    cmd.Transaction = tx;
                    try
                    {
                        for (int n = 0; n < SQLStringList.Count; n++)
                        {
                            string strsql = SQLStringList[n];
                            if (strsql.Trim().Length > 1)
                            {
                                cmd.CommandText = strsql;
                                PrepareCommand(cmd, conn, tx, strsql, null);
                                cmd.ExecuteNonQuery();
                            }
                        }
                        cmd.ExecuteNonQuery();
                        tx.Commit();
                        return true;
                    }
                    catch
                    {
                        tx.Rollback();
                        return false;
                    }
                }
            }
    
            #endregion ExecuteNonQuery
    
            #region ExecuteScalar
    
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object ExecuteScalar(string SQLString, string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }
    
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object ExecuteScalar(string SQLString, string MySQLConStr, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    using (MySqlCommand cmd = new MySqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                            object obj = cmd.ExecuteScalar();
                            cmd.Parameters.Clear();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            throw e;
                        }
                    }
                }
            }
    
            #endregion ExecuteScalar
    
            #region ExecuteReader
    
            /// <summary>
            /// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>MySqlDataReader</returns>
            public static MySqlDataReader ExecuteReader(string strSQL, string MySQLConStr)
            {
                MySqlConnection connection = new MySqlConnection(MySQLConStr);
                MySqlCommand cmd = new MySqlCommand(strSQL, connection);
                try
                {
                    connection.Open();
                    MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return myReader;
                }
                catch (MySql.Data.MySqlClient.MySqlException e)
                {
                    throw e;
                }
            }
    
            /// <summary>
            /// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>MySqlDataReader</returns>
            public static MySqlDataReader ExecuteReader(string SQLString, string MySQLConStr, params MySqlParameter[] cmdParms)
            {
                MySqlConnection connection = new MySqlConnection(MySQLConStr);
                MySqlCommand cmd = new MySqlCommand();
                try
                {
                    PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                    MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return myReader;
                }
                catch (MySql.Data.MySqlClient.MySqlException e)
                {
                    throw e;
                }
                // finally
                // {
                // cmd.Dispose();
                // connection.Close();
                // }
            }
    
            #endregion ExecuteReader
    
            #region ExecuteDataTable
    
            /// <summary>
            /// 执行查询语句,返回DataTable
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataTable</returns>
            public   DataTable ExecuteDataTable(string SQLString, string MySQLConStr)
            {
           
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                        command.Fill(ds, "ds");
                    }
                    catch (MySql.Data.MySqlClient.MySqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    connection.Close();
                    return ds.Tables[0];
                }
            }
    
            #region ExecuteDataTable
    
            /// <summary>
            /// 执行查询语句,返回DataTable
            /// </summary>
            /// <param name="db">数据库类型(Nozzle,Feeder,Head)</param>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataTable</returns>
            public static DataTable ExecuteDataTableSta(string db, string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        MySqlDataAdapter command = new MySqlDataAdapter(MySQLConStr, connection);
                        command.Fill(ds, "ds");
                    }
                    catch (MySql.Data.MySqlClient.MySqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    return ds.Tables[0];
                }
            }
    
            #endregion ExecuteDataTable
    
            /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataTable</returns>
            public static DataTable ExecuteDataTable(string SQLString, string MySQLConStr, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    MySqlCommand cmd = new MySqlCommand();
                    PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            da.Fill(ds, "ds");
                            cmd.Parameters.Clear();
                        }
                        catch (MySql.Data.MySqlClient.MySqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        return ds.Tables[0];
                    }
                }
            }
    
            //获取起始页码和结束页码
            public static DataTable ExecuteDataTable(string cmdText, int startResord, int maxRecord, string MySQLConStr)
            {
                using (MySqlConnection connection = new MySqlConnection(MySQLConStr))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        MySqlDataAdapter command = new MySqlDataAdapter(cmdText, connection);
                        command.Fill(ds, startResord, maxRecord, "ds");
                    }
                    catch (MySql.Data.MySqlClient.MySqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    return ds.Tables[0];
                }
            }
    
            #endregion ExecuteDataTable
    
            /// <summary>
            /// 获取分页数据 在不用存储过程情况下
            /// </summary>
            /// <param name="recordCount">总记录条数</param>
            /// <param name="selectList">选择的列逗号隔开,支持top num</param>
            /// <param name="tableName">表名字</param>
            /// <param name="whereStr">条件字符 必须前加 and</param>
            /// <param name="orderExpression">排序 例如 ID</param>
            /// <param name="pageIdex">当前索引页</param>
            /// <param name="pageSize">每页记录数</param>
            /// <returns></returns>
            public   DataTable getPager(out int recordCount, string selectList, string tableName, string whereStr, string orderExpression, int pageIdex, int pageSize, string MySQLConStr)
            {
                int rows = 0;
                DataTable dt = new DataTable();
                MatchCollection matchs = Regex.Matches(selectList, @"tops+d{1,}", RegexOptions.IgnoreCase);//含有top
                string sqlStr = sqlStr = string.Format("select {0} from {1} where 1=1 {2}", selectList, tableName, whereStr);
                if (!string.IsNullOrEmpty(orderExpression)) { sqlStr += string.Format(" Order by {0}", orderExpression); }
                if (matchs.Count > 0) //含有top的时候
                {
                    DataTable dtTemp = ExecuteDataTable(sqlStr,   MySQLConStr);
                    rows = dtTemp.Rows.Count;
                }
                else //不含有top的时候
                {
                    string sqlCount = string.Format("select count(*) from {0} where 1=1 {1} ", tableName, whereStr);
                    //获取行数
                    object obj = ExecuteScalar(sqlCount, MySQLConStr);
                    if (obj != null)
                    {
                        rows = Convert.ToInt32(obj);
                    }
                }
                dt = ExecuteDataTable(sqlStr, (pageIdex - 1) * pageSize, pageSize, MySQLConStr);
                recordCount = rows;
                return dt;
            }
    
            #region 创建command
    
            private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, 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 = CommandType.Text;//cmdType;
                if (cmdParms != null)
                {
                    foreach (MySqlParameter parameter in cmdParms)
                    {
                        if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                        {
                            parameter.Value = DBNull.Value;
                        }
                        cmd.Parameters.Add(parameter);
                    }
                }
            }
    
            #endregion 创建command
    
        }

    调用:

     MySqlHelper mySqlHelper = new MySqlHelper();
                var DTB = mySqlHelper.ExecuteDataTable("  select   * from TTT  where OldCodeStatus=1 and LastUpdateDate>=curdate() ", ConString);
  • 相关阅读:
    Quicksum -SilverN
    uva 140 bandwidth (好题) ——yhx
    uva 129 krypton factors ——yhx
    uva 524 prime ring problem——yhx
    uva 10976 fractions again(水题)——yhx
    uva 11059 maximum product(水题)——yhx
    uva 725 division(水题)——yhx
    uva 11853 paintball(好题)——yhx
    uva 1599 ideal path(好题)——yhx
    uva 1572 self-assembly ——yhx
  • 原文地址:https://www.cnblogs.com/panjinzhao/p/12883801.html
Copyright © 2011-2022 走看看