zoukankan      html  css  js  c++  java
  • C#编程入门--MYSQLHELPER

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using MySql.Data.MySqlClient;
    
    namespace drWm.mdal
    {
        public class MySqlHelper
        {
            //private static string connstr = @"server=localhost;uid=root;pwd=121535;database=tem;charset=utf8";
            private static string connstr = @"Host=127.0.0.1;UserName=root;Password=drpassword;Database=watermonitor;Port=3406;CharSet=utf8;Allow Zero Datetime=true";
    
            #region 执行查询语句,返回MySqlDataReader
            /// <summary>
            /// 执行查询语句,返回MySqlDataReader
            /// </summary>
            /// <param name="sqlString"></param>
            /// <returns></returns>
            public static MySqlDataReader ExecuteReader(string sqlString)
            {
                MySqlConnection connection = new MySqlConnection(connstr);
                MySqlCommand cmd = new MySqlCommand(sqlString, connection);
                MySqlDataReader myReader = null;
                try
                {
                    connection.Open();
                    myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return myReader;
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    connection.Close();
                    throw new Exception(e.Message);
                }
                finally
                {
                    if (myReader == null)
                    {
                        cmd.Dispose();
                        connection.Close();
                    }
                }
            }
            #endregion
    
            #region 执行带参数的查询语句,返回MySqlDataReader
            /// <summary>
            /// 执行带参数的查询语句,返回MySqlDataReader
            /// </summary>
            /// <param name="sqlString"></param>
            /// <param name="cmdParms"></param>
            /// <returns></returns>
            public static MySqlDataReader ExecuteReader(string sqlString, params MySqlParameter[] cmdParms)
            {
                MySqlConnection connection = new MySqlConnection(connstr);
                MySqlCommand cmd = new MySqlCommand();
                MySqlDataReader myReader = null;
                try
                {
                    PrepareCommand(cmd, connection, null, sqlString, cmdParms);
                    myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return myReader;
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    connection.Close();
                    throw new Exception(e.Message);
                }
                finally
                {
                    if (myReader == null)
                    {
                        cmd.Dispose();
                        connection.Close();
                    }
                }
            }
            #endregion
    
            #region 执行sql语句,返回执行行数
            /// <summary>
            /// 执行sql语句,返回执行行数
            /// </summary>
            /// <param name="sql"></param>
            /// <returns></returns>
            public static int ExecuteSql(string sql)
            {
                using (MySqlConnection conn = new MySqlConnection(connstr))
                {
                    using (MySqlCommand cmd = new MySqlCommand(sql, conn))
                    {
                        try
                        {
                            conn.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (MySql.Data.MySqlClient.MySqlException e)
                        {
                            conn.Close();
                            throw e;
                        }
                        finally
                        {
                            cmd.Dispose();
                            conn.Close();
                        }
                    }
                }
            }
            #endregion
    
            #region 执行带参数的sql语句,并返回执行行数
            /// <summary>
            /// 执行带参数的sql语句,并返回执行行数
            /// </summary>
            /// <param name="sqlString"></param>
            /// <param name="cmdParms"></param>
            /// <returns></returns>
            public static int ExecuteSql(string sqlString, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(connstr))
                {
                    using (MySqlCommand cmd = new MySqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, sqlString, cmdParms);
                            int rows = cmd.ExecuteNonQuery();
                            cmd.Parameters.Clear();
                            return rows;
                        }
                        catch (System.Data.SqlClient.SqlException E)
                        {
                            throw new Exception(E.Message);
                        }
                        finally
                        {
                            cmd.Dispose();
                            connection.Close();
                        }
                    }
                }
            }
            #endregion
    
            #region 执行查询语句,返回DataSet
            /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="sql"></param>
            /// <returns></returns>
            public static DataSet GetDataSet(string sql)
            {
                using (MySqlConnection conn = new MySqlConnection(connstr))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        conn.Open();
                        MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, conn);
                        DataAdapter.Fill(ds);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        conn.Close();
                    }
                    return ds;
                }
            }
            #endregion
    
            #region 执行带参数的查询语句,返回DataSet
            /// <summary>
            /// 执行带参数的查询语句,返回DataSet
            /// </summary>
            /// <param name="sqlString"></param>
            /// <param name="cmdParms"></param>
            /// <returns></returns>
            public static DataSet GetDataSet(string sqlString, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(connstr))
                {
                    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 (System.Data.SqlClient.SqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            cmd.Dispose();
                            connection.Close();
                        }
                        return ds;
                    }
                }
            }
            #endregion
    
            #region 执行带参数的sql语句,并返回object
            /// <summary>
            /// 执行带参数的sql语句,并返回object
            /// </summary>
            /// <param name="sqlString"></param>
            /// <param name="cmdParms"></param>
            /// <returns></returns>
            public static object GetSingle(string sqlString, params MySqlParameter[] cmdParms)
            {
                using (MySqlConnection connection = new MySqlConnection(connstr))
                {
                    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 (System.Data.SqlClient.SqlException e)
                        {
                            throw new Exception(e.Message);
                        }
                        finally
                        {
                            cmd.Dispose();
                            connection.Close();
                        }
                    }
                }
            }
            #endregion
    
            /// <summary>
            /// 执行存储过程,返回数据集
            /// </summary>
            /// <param name="storedProcName">存储过程名</param>
            /// <param name="parameters">存储过程参数</param>
            /// <returns>DataSet</returns>
            public static DataSet RunProcedureForDataSet(string storedProcName, IDataParameter[] parameters)
            {
                using (MySqlConnection connection = new MySqlConnection(connstr))
                {
                    DataSet dataSet = new DataSet();
                    connection.Open();
                    MySqlDataAdapter sqlDA = new MySqlDataAdapter();
                    sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                    sqlDA.Fill(dataSet);
                    connection.Close();
                    return dataSet;
                }
            }
    
            /// <summary>
            /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
            /// </summary>
            /// <param name="connection">数据库连接</param>
            /// <param name="storedProcName">存储过程名</param>
            /// <param name="parameters">存储过程参数</param>
            /// <returns>SqlCommand</returns>
            private static MySqlCommand BuildQueryCommand(MySqlConnection connection, string storedProcName,
                IDataParameter[] parameters)
            {
                MySqlCommand command = new MySqlCommand(storedProcName, connection);
                command.CommandType = CommandType.StoredProcedure;
                foreach (MySqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
                return command;
            }
    
            #region 装载MySqlCommand对象
            /// <summary>
            /// 装载MySqlCommand对象
            /// </summary>
            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 parm in cmdParms)
                    {
                        cmd.Parameters.Add(parm);
                    }
                }
            }
            #endregion
    
        }
    }
  • 相关阅读:
    树点涂色
    搜索+DP的一波小水题
    洛谷 P2194 HXY烧情侣
    洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur
    走楼梯升级版(9.8 模拟赛。。。xxy原创)
    洛谷 P2966 [USACO09DEC]牛收费路径Cow Toll Paths
    Tyvj P2207 上学路线route
    cogs 2342. [SCOI2007]kshort
    洛谷 P2740 [USACO4.2]草地排水Drainage Ditches
    洛谷 P1318 积水面积
  • 原文地址:https://www.cnblogs.com/tyqing/p/8649403.html
Copyright © 2011-2022 走看看