sqlHelepr的封装

 private static string connStr=ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//获取连接字符串

        /// <summary>
        /// 执行非查询SQL命令,列如:insert、updata、Delete等,并返回影响行数
        /// </summary>
        /// <param name="sql">SQL命令语句</param>
        /// <param name="parameters">SqlCommand的参数</param>
        /// <returns>ExecuteNonQuery返回值</returns>
        public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
        {
            using(SqlConnection conn=new SqlConnection(connStr))//链接数据库
            {
                conn.Open();//打开数据库
                using (SqlCommand cmd = conn.CreateCommand())//创建并返回一个和SqlConnection相关的SqlCommand对象
                {
                    cmd.CommandText = sql;//获取SQL命令语句
                    cmd.Parameters.AddRange(parameters);//SqlCommand的参数
                    return cmd.ExecuteNonQuery();//返回结果
                }
            }
        }

        /// <summary>
        /// 执行SqlDataReader按流方式查询,结果存放在数据库,适合大型数据查询
        /// </summary>
        /// <param name="sql">SQL命令语句</param>
        /// <param name="parameters">SqlCommand的参数</param>
        /// <returns>SqlDataReader集合返回值</returns>
        public static SqlDataReader ExecuteDataReader(string sql, params SqlParameter[] parameters)
        {
            SqlConnection conn = new SqlConnection(connStr);//链接数据库
            using (SqlCommand cmd = conn.CreateCommand())//创建并返回一个和SqlConnection相关的SqlCommand对象
                {
                    cmd.CommandText = sql;//获取SQL命令语句
                    if (parameters != null)//判断parameters参数是否为空,
                    {
                        cmd.Parameters.AddRange(parameters);//SqlCommand的参数
                    }
                    conn.Open();//打开数据库
                    SqlDataReader sqlred = cmd.ExecuteReader(CommandBehavior.CloseConnection);//将获取到的SQL语句,发送到和SqlCommand相关联的SqlConnection,并使用提供对查询结果,和查询对数据库影响的说明,其值之一生成一个SqlDataReader
                    return sqlred;//返回一个SqlDataReader集合
                }
        }

        /// <summary>
        /// 执行DataTable离线数据查询,把数据读到本地内存中,适合比较少的sql查询
        /// </summary>
        /// <param name="sql">SQL命令语句</param>
        /// <param name="parameters">SqlCommand的参数</param>
        /// <returns>返回表集合</returns>
        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))//链接数据库
            {
                conn.Open();//打开数据库
                using (SqlCommand cmd = conn.CreateCommand())//创建并返回一个和SqlConnection相关的SqlCommand对象
                {
                    cmd.CommandText = sql;//获取SQL命令语句
                    cmd.Parameters.AddRange(parameters);//SqlCommand的参数
                    SqlDataAdapter sqldad = new SqlDataAdapter(cmd);//表示用来把SqlCommand填充到DataSet
                    DataSet dataset = new DataSet();//初始化DataSet
                    sqldad.Fill(dataset);//向DataSet中填充SqlDataAdapter从SqlCommand中获取的数据
                    return dataset.Tables[0];//返回DataSet中的表集合
                }
            }
        }

        /// <summary>
        /// 执行查询并返回查询结果的第一行第一列,忽略其他行其他列
        /// </summary>
        /// <param name="sql">SQL命令语句</param>
        /// <param name="parameters">SqlCommand参数</param>
        /// <returns>返回查询结果</returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))//链接数据库
            {
                conn.Open();//打开数据库
                using (SqlCommand cmd = conn.CreateCommand())//创建并返回一个和SqlConnection相关的SqlCommand对象
                {
                    cmd.CommandText = sql;//获取SQL命令语句
                    cmd.Parameters.AddRange(parameters);//SqlCommand的参数
                    return cmd.ExecuteScalar();//查询结果
                }
            }
        }

 

posted @ 2014-04-25 11:10  Rey.real  阅读(215)  评论(0)    收藏  举报