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; } } /// /// ÊÂÎï /// /// 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; } } }