sqlhelper

using System;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace DAL
{
    /// <summary>
    /// 数据库操作类
    /// </summary>
    public class SqlHelper
    {
        //从配置文件获得连接字符串
        private static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

        #region 根据sql语句查询数据表 +DataTable ExcuteTable(string sql, params SqlParameter[] paras)
        /// <summary>
        /// 根据sql语句查询数据表
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="paras">查询参数集合</param>
        /// <returns></returns>
        public DataTable ExcuteTable(string sql, params SqlParameter[] paras)
        {
            SqlConnection conn = new SqlConnection(SqlHelper.connStr);
            //创建适配器对象(卡车)
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);
            if (paras != null && paras.Length > 0)//如果有参数,将它添加到 适配器查询命令的 参数集合中
            {
                da.SelectCommand.Parameters.AddRange(paras);
            }
            DataTable dt = new DataTable();
            //查询数据,并将返回的数据装入数据表dt
            da.Fill(dt);
            return dt;
        }
        #endregion

        public DataTable ExcuteProc(string procName, params SqlParameter[] paras)
        {
            SqlConnection conn = new SqlConnection(SqlHelper.connStr);
            SqlDataAdapter da = new SqlDataAdapter(procName, conn);
            da.SelectCommand.Parameters.AddRange(paras);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;//设置 使用存储过程
            DataTable dt = new DataTable();
            //查询数据,并将返回的数据装入数据表dt
            da.Fill(dt);
            return dt;
        }

        #region 执行 增删改 操作 +int ExcuteNonQuery(string sqlStr, params SqlParameter[] paras)
        /// <summary>
        /// 执行 增删改 操作
        /// </summary>
        /// <param name="sqlStr">sql</param>
        /// <param name="paras">参数数组</param>
        /// <returns></returns>
        public int ExcuteNonQuery(string sqlStr, params SqlParameter[] paras)
        {
            int res = -1;
            SqlConnection conn = new SqlConnection(connStr);
            //创建 命令对象 执行增删改 操作(工人),并赋值(要执行的sql语句,要走的连接通道)
            SqlCommand cmd = new SqlCommand(sqlStr, conn);
            //传入参数数组
            cmd.Parameters.AddRange(paras);
            conn.Open();//打开连接通道
            res = cmd.ExecuteNonQuery();//去数据库执行操作
            conn.Close();//关闭连接通道
            return res;//返回受影响行数
        }
        #endregion

        #region 执行 查询单个值 操作 +int ExcuteNonQuery(string sqlStr, params SqlParameter[] paras)
        /// <summary>
        /// 执行 查询单个值 操作
        /// </summary>
        /// <param name="sqlStr">sql</param>
        /// <param name="paras">参数数组</param>
        /// <returns></returns>
        public object ExcuteScalar(string sqlStr, params SqlParameter[] paras)
        {
            object res = -1;
            SqlConnection conn = new SqlConnection(connStr);
            //创建 命令对象 执行增删改 操作(工人),并赋值(要执行的sql语句,要走的连接通道)
            SqlCommand cmd = new SqlCommand(sqlStr, conn);
            //传入参数数组
            cmd.Parameters.AddRange(paras);
            conn.Open();//打开连接通道
            res = cmd.ExecuteScalar();//去数据库执行操作
            conn.Close();//关闭连接通道
            return res;//返回 查询到的第一个单元格的值
        }
        #endregion
    }
}

posted @ 2011-07-29 20:14  _best  阅读(276)  评论(0)    收藏  举报