SqlHelper

网友投稿 710 2022-08-31

SqlHelper

SqlHelper

public static readonly string connString = ConfigurationManager.ConnectionStrings["Permissions"].ToString();

#region ExecuteNonQuery(如果是增,删,修) ///

/// 执行sql命令 /// /// 连接字符串 /// 命令类型 /// sql语句/参数化sql语句/存储过程名 /// 参数 /// 受影响的行数 public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, commandType, conn, commandText, commandParameters); int val = cmd.ExecuteNonQuery(); return val; } } /// /// 执行Sql Server存储过程 /// 注意:不能执行有out 参数的存储过程 /// /// 连接字符串 /// 存储过程名 /// 对象参数 /// 受影响的行数 public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues) { using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, conn, spName, parameterValues); int val = cmd.ExecuteNonQuery(); return val; } } #endregion #region ExecuteReader(如果只是读数据) /// /// 执行sql命令 /// /// 连接字符串 /// 命令类型 /// sql语句/参数化sql语句/存储过程名 /// 参数 /// SqlDataReader 对象 public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) { SqlConnection conn = new SqlConnection(connectionString); try { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, commandType, conn, commandText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return rdr; } catch { conn.Close(); throw; } } /// /// 执行Sql Server存储过程 /// 注意:不能执行有out 参数的存储过程 /// /// 连接字符串 /// 存储过程名 /// 对象参数 /// 受影响的行数 public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues) { SqlConnection conn = new SqlConnection(connectionString); try { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, conn, spName, parameterValues); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return rdr; } catch { conn.Close(); throw; } } #endregion #region ExecuteDataset(如果查询一个数据集) /// /// 执行Sql Server存储过程 /// 注意:不能执行有out 参数的存储过程 /// /// 连接字符串 /// 存储过程名 /// 对象参数 /// DataSet对象 public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues) { using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, conn, spName, parameterValues); using (SqlDataAdapter da = new SqlDataAdapter(cmd)) { DataSet ds = new DataSet(); da.Fill(ds); return ds; } } } /// /// 执行Sql 命令 /// /// 连接字符串 /// 命令类型 /// sql语句/参数化sql语句/存储过程名 /// 参数 /// DataSet 对象 public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) { using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, commandType, conn, commandText, commandParameters); using (SqlDataAdapter da = new SqlDataAdapter(cmd)) { DataSet ds = new DataSet(); da.Fill(ds); return ds; } } } #endregion #region ExecuteScalar (如果你只查询一个值) /// /// 执行Sql 命令 /// /// 连接字符串 /// 命令类型 /// sql语句/参数化sql语句/存储过程名 /// 参数 /// 执行结果对象 public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, commandType, conn, commandText, commandParameters); object val = cmd.ExecuteScalar(); return val; } } /// /// 执行Sql Server存储过程 /// 注意:不能执行有out 参数的存储过程 /// /// 连接字符串 /// 存储过程名 /// 对象参数 /// 执行结果对象 public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, conn, spName, parameterValues); object val = cmd.ExecuteScalar(); return val; } } #endregion #region Private Method /// /// 设置一个等待执行的SqlCommand对象 /// /// SqlCommand 对象,不允许空对象 /// SqlConnection 对象,不允许空对象 /// Sql 语句 /// SqlParameters 对象,允许为空对象 private static void PrepareCommand(SqlCommand cmd, CommandType commandType, SqlConnection conn, string commandText, SqlParameter[] cmdParms) { //打开连接 if (conn.State != ConnectionState.Open) conn.Open(); //设置SqlCommand对象 cmd.Connection = conn; cmd.CommandText = commandText; cmd.CommandType = commandType; if (cmdParms != null) { foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } } /// /// 设置一个等待执行存储过程的SqlCommand对象 /// /// SqlCommand 对象,不允许空对象 /// SqlConnection 对象,不允许空对象 /// Sql 语句 /// 不定个数的存储过程参数,允许为空 private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, string spName, params object[] parameterValues) { //打开连接 if (conn.State != ConnectionState.Open) conn.Open(); //设置SqlCommand对象 cmd.Connection = conn; cmd.CommandText = spName; cmd.CommandType = CommandType.StoredProcedure; //获取存储过程的参数 SqlCommandBuilder.DeriveParameters(cmd); //移除Return_Value 参数 cmd.Parameters.RemoveAt(0); //设置参数值 if (parameterValues != null) { for (int i = 0; i < cmd.Parameters.Count; i++) { cmd.Parameters[i].Value = parameterValues[i]; } } } #endregion

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Go语言基础:类型别名和自定义类型(go语言框架分类)
下一篇:C#排序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~