using System; using System.Collections.Generic; using System.Linq; using System.Web; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Reflection; namespace LeaRun.Application.Web.Common { public class SqlHelper { //连接字符串 private static readonly string connStrN = ConfigurationManager.ConnectionStrings["BaseDb"].ConnectionString; //IP地址 //private static String SqlServerId = Wujian_Jm.C_DesDecrypt(GetConfigValue("SqlServerId"), "WWKJ"); ////用户名 //private static String SqlUserId = Wujian_Jm.C_DesDecrypt(GetConfigValue("SqlUserId"), "WWKJ"); ////用户密码 //private static String PassWord = Wujian_Jm.C_DesDecrypt(GetConfigValue("PassWord"), "WWKJ"); //数据库名 //private static String DbaseName = GetConfigValue("DbaseName"); //拼接链接字符串 // private static r string connStrN = "data source=" + SqlServerId + ";initial catalog=" + DbaseName + ";user id=" + SqlUserId + ";password=" + PassWord + ";"; //1.执行insert/delete/update的方法 #region 配置文件字段的读取函数 public static string GetConfigValue(string key) { string value = ""; try { String Path = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "XmlConfig/database.config"; string assemblyConfigFile = Assembly.GetEntryAssembly().Location; Configuration config = ConfigurationManager.OpenExeConfiguration(assemblyConfigFile); AppSettingsSection app = config.AppSettings; value = app.Settings[key].Value; return value; } catch { return value; } } public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] pms) { using (SqlConnection con = new SqlConnection(connStrN)) { using (SqlCommand cmd = new SqlCommand(sql, con)) { //设置当前执行的是存储过程还是带参数的Sql语句 cmd.CommandType = cmdType; if (pms != null) { cmd.Parameters.AddRange(pms); } try { con.Open(); return cmd.ExecuteNonQuery(); } catch { con.Close(); con.Dispose(); throw; } } } } #endregion public static int ExecuteNoQuery(string sql, CommandType cmdType, params SqlParameter[] pms) { using (SqlConnection con = new SqlConnection(connStrN)) { using (SqlCommand cmd = new SqlCommand(sql, con)) { //设置当前执行的是存储过程还是带参数的Sql语句 cmd.CommandType = cmdType; if (pms != null) { cmd.Parameters.AddRange(pms); } try { con.Open(); return cmd.ExecuteNonQuery(); } catch { con.Close(); con.Dispose(); throw; } } } } //2.执行返回单个值的方法 public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] pms) { ////IP地址 //String SqlServerIP = Wujian_Jm.C_DesDecrypt(GetConfigValue("SqlServerId"), "WWKJ"); ////用户名 //String userId = Wujian_Jm.C_DesDecrypt(GetConfigValue("SqlUserId"), "WWKJ"); ////用户密码 //String pwd = Wujian_Jm.C_DesDecrypt(GetConfigValue("PassWord"), "WWKJ"); ////数据库名 //String dbName = GetConfigValue("DbaseName"); ////拼接链接字符串 //string connStrNew = "data source=" + SqlServerIP + ";initial catalog=" + dbName + ";user id=" + userId + ";password=" + pwd + ";"; using (SqlConnection con = new SqlConnection(connStrN)) { using (SqlCommand cmd = new SqlCommand(sql, con)) { cmd.Parameters.Clear(); //设置当前执行的是存储过程还是带参数的Sql语句 cmd.CommandType = cmdType; if (pms != null) { cmd.Parameters.AddRange(pms); } con.Open(); return cmd.ExecuteScalar(); } } } //3.返回SqlDataReader的方法 public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] pms) { SqlConnection con = new SqlConnection(connStrN); using (SqlCommand cmd = new SqlCommand(sql, con)) { cmd.CommandType = cmdType; if (pms != null) { cmd.Parameters.AddRange(pms); } try { con.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //修改 刘学铸 by 2017-06-02 cmd.Parameters.Clear(); return dr;//cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch { con.Close(); con.Dispose(); throw; } } } //4.返回DataTable public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] pms) { DataTable dt = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connStrN)) { adapter.SelectCommand.CommandType = cmdType; if (pms != null) { adapter.SelectCommand.Parameters.AddRange(pms); } adapter.Fill(dt); return dt; } } /// /// 执行sql语句无参数 /// public static int ExecuteNoParams(string sql, CommandType cmdType) { using (SqlConnection conn = new SqlConnection(connStrN)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.CommandType = cmdType; try { return cmd.ExecuteNonQuery(); } catch (Exception) { conn.Close(); throw; } } } } /// /// 带事务的存储过程 /// /// 存储过程名称 /// 存储过程参数-不能为空 /// 0:执行成功 异常抛出 public static int ExecStoredProcedure(string procName, params SqlParameter[] parameters) { int rtn = 0; using (SqlConnection conn = new SqlConnection(connStrN)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { SqlTransaction st = conn.BeginTransaction(); cmd.Transaction = st; try { cmd.CommandText = procName; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(parameters); rtn = cmd.ExecuteNonQuery(); st.Commit(); cmd.Parameters.Clear();//修改 刘学铸 at 2017-07-13 return rtn; } catch (SqlException sqlex) { st.Rollback(); throw sqlex; } } } } } }