using System; using System.Data; using System.Data.SqlClient; using System.Runtime.InteropServices; public abstract class SqlHelper { public static SqlConnection conn; protected SqlHelper() { } public static DataSet ExecuteDataSet(CommandType cmdType, string cmdText, string tabName, params SqlParameter[] commandParameters) { DataSet set; SqlCommand cmd = new SqlCommand(); try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet dataSet = new DataSet(); adapter.Fill(dataSet, tabName); set = dataSet; } catch { throw; } return set; } public static DataSet ExecuteDataSet(int cmdType, string cmdText, string tabName, params SqlParameter[] commandParameters) { CommandType text = CommandType.Text; switch (cmdType) { case 4: text = CommandType.StoredProcedure; break; case 512: text = CommandType.TableDirect; break; } return ExecuteDataSet(text, cmdText, tabName, commandParameters); } public static DataSet ExecuteDataSet(string procedureName, string tabName, string[] parameterNames, object[] parameterValues) { DataSet set; try { SqlCommand selectCommand = new SqlCommand(procedureName, conn) { CommandType = CommandType.StoredProcedure }; if ((parameterNames != null) && (parameterValues != null)) { for (int i = 0; (i < parameterNames.Length) && (i < parameterValues.Length); i++) { selectCommand.Parameters.AddWithValue(parameterNames[i], parameterValues[i]); } } SqlDataAdapter adapter = new SqlDataAdapter(selectCommand); DataSet dataSet = new DataSet(); adapter.Fill(dataSet, tabName); set = dataSet; } catch { throw; } return set; } public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int num = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return num; } public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); int num = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return num; } 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 num = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return num; } public static SqlDataReader ExecuteReader(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlDataReader reader; SqlCommand cmd = new SqlCommand(); try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader reader2 = cmd.ExecuteReader(); cmd.Parameters.Clear(); reader = reader2; } catch { throw; } return reader; } public static object ExecuteScalar(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); object obj2 = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return obj2; } public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object obj2 = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return obj2; } public static DataTable PageDataQuery(int ToPage, int PageSize, string Sele_mx, string id, string Froms, out int AllRecords) { return PageDataQuery(ToPage, PageSize, "", "", Sele_mx, id, Froms, out AllRecords); } public static DataTable PageDataQuery(int ToPage, int PageSize, string Order_by, string Sele_mx, string id, string Froms, out int AllRecords) { return PageDataQuery(ToPage, PageSize, "", Order_by, Sele_mx, id, Froms, out AllRecords); } public static DataTable PageDataQuery(int ToPage, int PageSize, string WhereString, string Order_by, string Sele_mx, string id, string Froms, out int AllRecords) { DataTable table = new DataTable(); SqlCommand command = new SqlCommand("Common_FenYe", conn) { CommandType = CommandType.StoredProcedure }; command.Parameters.Add("@ToPage", SqlDbType.Int).Value = ToPage; command.Parameters.Add("@PageSize", SqlDbType.Int).Value = PageSize; command.Parameters.Add("@WhereString", SqlDbType.VarChar, 4000).Value = WhereString; command.Parameters.Add("@Order_by", SqlDbType.VarChar, 500).Value = Order_by; command.Parameters.Add("@Sele_mx", SqlDbType.VarChar, 1000).Value = Sele_mx; command.Parameters.Add("@id", SqlDbType.VarChar, 30).Value = id; command.Parameters.Add("@Froms", SqlDbType.VarChar, 2000).Value = Froms; command.Parameters.Add("@AllRecords", SqlDbType.Int, 4).Direction = ParameterDirection.Output; try { SqlDataReader reader = command.ExecuteReader(); table.Load(reader); reader.Close(); AllRecords = int.Parse(command.Parameters["@AllRecords"].Value.ToString()); } catch { throw; } finally { command.Dispose(); } return table; } 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); } } } }