【ADO.NET】7、SQL高级封装

这次是更加简化的进行封装,所有的cmd操作命令都封装到了 Allcmd() 方法里面
别外还有一个别点是 每次执行命令完后,都会垃圾回收, cmd.Parameters.Clear();
是先将执行返回的结果用变量存储,然后在 Clear 掉,然后再将变量值返回出去

   public static string str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
    
    /// 
        /// 用于查询数据返回 SqlDataReader 类型
        /// 
        /// 连接字符串
        /// 操作类型(text/StoredProcedure)
        /// 操作命令(存储过程)
        /// 参数
        /// 
   public static SqlDataReader ExecuteReader(string ConnectionStrs,CommandType type,string cmdtext, params SqlParameter[] parameter)
     {
            SqlConnection conn = new SqlConnection(ConnectionStrs);
            SqlCommand cmd = conn.CreateCommand();
            Allcmd(conn, cmd, type, cmdtext, parameter);
            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            return dr;
      }

        /// 
        /// 用于更新,删除,插入数据返回int类型
        /// 
        /// 连接字符串
        /// 操作类型(text/StoredProcedure)
        /// 操作命令(存储过程)
        /// 参数
        /// 
   public static int ExecuteNoQuery(string ConnectionStrs, CommandType type, string cmdtext, params SqlParameter[] parameter)
     {
            using (SqlConnection conn = new SqlConnection(ConnectionStrs))
            {
                SqlCommand cmd = conn.CreateCommand();
                Allcmd(conn, cmd,type, cmdtext, parameter);
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }
      }

        /// 
        /// 用于返回首行首列的数据返回object类型
        /// 
        /// 连接字符串
        /// 操作类型(text/StoredProcedure)
        /// 操作命令(存储过程)
        /// 参数
        /// 
    public static object ExecuteScalar(string ConnectionStrs, CommandType type, string cmdtext, params SqlParameter[] parameter)
      {
            using (SqlConnection conn = new SqlConnection(ConnectionStrs))
            {
                SqlCommand cmd = conn.CreateCommand();
                Allcmd(conn, cmd, type, cmdtext, parameter);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }
        }

        /// 
        /// 用于操作全部的连接命令
        /// 
        /// 连接对象
        /// 命令操作对象
        /// 命令操作类型
        /// 执行语句
        /// 参数对象
    private static void Allcmd(SqlConnection conn, SqlCommand cmd, CommandType Type, string cmdText, SqlParameter[] cmdParms)
      {
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            cmd.Connection = conn;
            cmd.CommandType = Type;
            cmd.CommandText = cmdText;
            if (cmdParms != null)
            {
                foreach (SqlParameter par in cmdParms)
                {
                    cmd.Parameters.Add(par);
                }
            }
      }

 

转载于:https://www.cnblogs.com/xgao/p/4135173.html

你可能感兴趣的:(【ADO.NET】7、SQL高级封装)