using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Text; 
 | 
using System.Data.SqlClient; 
 | 
using System.Data; 
 | 
using System.Collections; 
 | 
using System.Configuration;  
 | 
  
 | 
namespace SQLHelper 
 | 
{ 
 | 
    public static class SQLHelper222 
 | 
    { 
 | 
        public static SqlConnection Conn; 
 | 
        public static  string strCon =""; 
 | 
  
 | 
       
 | 
  
 | 
  
 | 
        private static SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters) 
 | 
        { 
 | 
            SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters); 
 | 
            command.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null)); 
 | 
            return command; 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters) 
 | 
        { 
 | 
            SqlCommand command = new SqlCommand(storedProcName, connection); 
 | 
            command.CommandType = CommandType.StoredProcedure; 
 | 
            if (parameters != null) 
 | 
            { 
 | 
                foreach (SqlParameter parameter in parameters) 
 | 
                { 
 | 
                    if (parameter != null) 
 | 
                    { 
 | 
                        if (((parameter.Direction == ParameterDirection.InputOutput) || (parameter.Direction == ParameterDirection.Input)) && (parameter.Value == null)) 
 | 
                        { 
 | 
                            parameter.Value = DBNull.Value; 
 | 
                        } 
 | 
                        command.Parameters.Add(parameter); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            return command; 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
        public static void close() 
 | 
        { 
 | 
            if ((Conn != null) && (Conn.State == ConnectionState.Open)) 
 | 
            { 
 | 
                Conn.Close(); 
 | 
                Conn.Dispose(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) 
 | 
        { 
 | 
            SqlCommand cmd = new SqlCommand(); 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (Conn = new SqlConnection(strCon)) 
 | 
            { 
 | 
                PrepareCommand(cmd, Conn, null, cmdType, cmdText, commandParameters); 
 | 
                int num = cmd.ExecuteNonQuery(); 
 | 
                cmd.Parameters.Clear(); 
 | 
                Conn.Close(); 
 | 
                Conn.Dispose(); 
 | 
                return num; 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        public static SqlConnection getConn() 
 | 
        {  
 | 
            string sServer = Pub_Class.ClsIni.ReadIni("Erp", "Server", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini"); 
 | 
            string sDataBase = Pub_Class.ClsIni.ReadIni("Erp", "DataBase", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini"); 
 | 
            string sUser = Pub_Class.ClsIni.ReadIni("Erp", "UserName", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini"); 
 | 
            string sPassword = Pub_Class.ClsIni.ReadIni("Erp", "PassWord", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini"); 
 | 
            string strCon = "Data Source=" + sServer + ";DataBase="+sDataBase+";User ID=" + sUser + ";PWD=" + sPassword + " "; 
 | 
            return new SqlConnection(strCon); 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) 
 | 
        { 
 | 
            if (conn.State != ConnectionState.Open) 
 | 
            { 
 | 
                conn.Open(); 
 | 
            } 
 | 
            cmd.Connection = conn; 
 | 
            cmd.CommandText = cmdText; 
 | 
            if (trans != null) 
 | 
            { 
 | 
                cmd.Transaction = trans; 
 | 
            } 
 | 
            cmd.CommandType = cmdType; 
 | 
            if (cmdParms != null) 
 | 
            { 
 | 
                foreach (SqlParameter parameter in cmdParms) 
 | 
                { 
 | 
                    cmd.Parameters.Add(parameter); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public static DataSet Query(string SQLString, string tableName) 
 | 
        { 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                DataSet dataSet = new DataSet(); 
 | 
                try 
 | 
                { 
 | 
                    connection.Open(); 
 | 
                    new SqlDataAdapter(SQLString, connection).Fill(dataSet, tableName); 
 | 
                    connection.Close(); 
 | 
                } 
 | 
                catch (SqlException exception) 
 | 
                { 
 | 
                    throw new Exception(exception.Message); 
 | 
                } 
 | 
                finally 
 | 
                { 
 | 
                    connection.Close(); 
 | 
                } 
 | 
                return dataSet; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public static DataTable ExecuteDataTable(string sSQL) 
 | 
        { 
 | 
            DataTable dt = new DataTable(); 
 | 
  
 | 
            SqlDataAdapter sqldpt = new SqlDataAdapter(); 
 | 
            SqlConnection conn = getConn(); 
 | 
            SqlCommand cmd = new SqlCommand(sSQL, conn); 
 | 
            try 
 | 
            { 
 | 
                //cmd.CommandText = sSQL; 
 | 
                sqldpt.SelectCommand = cmd; 
 | 
                conn.Open(); 
 | 
                sqldpt.Fill(dt); 
 | 
                conn.Close(); 
 | 
                conn.Dispose(); 
 | 
            } 
 | 
            catch 
 | 
            { 
 | 
                conn.Close(); 
 | 
                conn.Dispose(); 
 | 
                throw; 
 | 
            } 
 | 
            finally 
 | 
            { 
 | 
                conn.Close(); 
 | 
            } 
 | 
  
 | 
            return dt; 
 | 
        } 
 | 
        public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) 
 | 
        { 
 | 
            SqlCommand cmd = new SqlCommand(); 
 | 
            PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters); 
 | 
            int val = cmd.ExecuteNonQuery(); 
 | 
            cmd.Parameters.Clear(); 
 | 
            return val; 
 | 
        } 
 | 
        public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters) 
 | 
        { 
 | 
            SqlConnection connection = getConn(); 
 | 
            try 
 | 
            { 
 | 
                connection.Open(); 
 | 
                SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters); 
 | 
                command.CommandType = CommandType.StoredProcedure; 
 | 
                return command.ExecuteReader(CommandBehavior.CloseConnection); 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                throw new Exception(e.Message); 
 | 
                return null; 
 | 
  
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected) 
 | 
        { 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                connection.Open(); 
 | 
                SqlCommand command = BuildIntCommand(connection, storedProcName, parameters); 
 | 
                rowsAffected = command.ExecuteNonQuery(); 
 | 
                int num = (int)command.Parameters["ReturnValue"].Value; 
 | 
                connection.Close(); 
 | 
                return num; 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName) 
 | 
        { 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                DataSet dataSet = new DataSet(); 
 | 
                connection.Open(); 
 | 
                SqlDataAdapter adapter = new SqlDataAdapter(); 
 | 
                adapter.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters); 
 | 
                adapter.Fill(dataSet, tableName); 
 | 
                connection.Close(); 
 | 
                connection.Dispose(); 
 | 
                return dataSet; 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName, int Times) 
 | 
        { 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                DataSet dataSet = new DataSet(); 
 | 
                connection.Open(); 
 | 
                SqlDataAdapter adapter = new SqlDataAdapter(); 
 | 
                adapter.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters); 
 | 
                adapter.SelectCommand.CommandTimeout = Times; 
 | 
                adapter.Fill(dataSet, tableName); 
 | 
                connection.Close(); 
 | 
                connection.Dispose(); 
 | 
                return dataSet; 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
        public static int ExecuteSql(string SQLString) 
 | 
        { 
 | 
            int num2; 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                SqlCommand command = new SqlCommand(SQLString, connection); 
 | 
                try 
 | 
                { 
 | 
                    connection.Open(); 
 | 
                    num2 = command.ExecuteNonQuery(); 
 | 
                    connection.Close(); 
 | 
                    return num2; 
 | 
                } 
 | 
                catch (SqlException exception) 
 | 
                { 
 | 
                    connection.Close(); 
 | 
                    throw new Exception(exception.Message); 
 | 
                } 
 | 
                finally 
 | 
                { 
 | 
                    connection.Close(); 
 | 
                    if (command != null) 
 | 
                    { 
 | 
                        command.Dispose(); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            return num2; 
 | 
        } 
 | 
  
 | 
        public static SqlTransaction GetSqlTransaction() 
 | 
        { 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                connection.Open(); 
 | 
                //SqlCommand command = new SqlCommand(); 
 | 
                //command.Connection = connection; 
 | 
                SqlTransaction transaction = connection.BeginTransaction(); 
 | 
                return transaction; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// ÊÂÎï 
 | 
        /// </summary> 
 | 
        /// <param name="SQLStringList"></param> 
 | 
        public static bool ExecuteSqlTran(ArrayList SQLStringList) 
 | 
        { 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                connection.Open(); 
 | 
                SqlCommand command = new SqlCommand(); 
 | 
                command.Connection = connection; 
 | 
                SqlTransaction transaction = connection.BeginTransaction(); 
 | 
                command.Transaction = transaction; 
 | 
                try 
 | 
                { 
 | 
                    for (int i = 0; i < SQLStringList.Count; i++) 
 | 
                    { 
 | 
                        string str = SQLStringList[i].ToString(); 
 | 
                        if (str.Trim().Length > 1) 
 | 
                        { 
 | 
                            command.CommandText = str; 
 | 
                            command.ExecuteNonQuery(); 
 | 
                        } 
 | 
                    } 
 | 
                    transaction.Commit(); 
 | 
                    return true; 
 | 
                } 
 | 
                catch (SqlException exception) 
 | 
                {                     
 | 
                    transaction.Rollback(); 
 | 
                    return false; 
 | 
                    throw new Exception(exception.Message); 
 | 
                     
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
        public static object GetSingle(string SQLString) 
 | 
        { 
 | 
            object obj3; 
 | 
            string strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString"); 
 | 
            using (SqlConnection connection = new SqlConnection(strCon)) 
 | 
            { 
 | 
                SqlCommand command = new SqlCommand(SQLString, connection); 
 | 
                try 
 | 
                { 
 | 
                    connection.Open(); 
 | 
                    object objA = command.ExecuteScalar(); 
 | 
                    if (object.Equals(objA, null) || object.Equals(objA, DBNull.Value)) 
 | 
                    { 
 | 
                        return null; 
 | 
                    } 
 | 
                    return objA; 
 | 
                } 
 | 
                catch (SqlException exception) 
 | 
                { 
 | 
                    connection.Close(); 
 | 
                    throw new Exception(exception.Message); 
 | 
                } 
 | 
                finally 
 | 
                { 
 | 
                    if (command != null) 
 | 
                    { 
 | 
                        command.Dispose(); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            return obj3; 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
    } 
 | 
} 
 |