ADO.net

DBHelper类
public class DBHelper
{
private static readonly string constr = “Data Source=.;Initial Catalog=HiQQ;Persist Security Info=True;User ID=sa;pwd=sasa”;

    /// <summary>
    /// 查询第一行第一列数据   例如count()  sum()   等等聚合函数
    /// </summary>
    /// <param name="sql">sql语句</param>
    /// <param name="par">参数</param>
    /// <returns>返回值</returns>
    public static object GetSalcar(string sql,SqlParameter[] par)
    {
        using(SqlConnection conn=new SqlConnection(constr))//打开数据库连接,并且执行完毕以后关闭数据库连接
        {
            if (conn.State != ConnectionState.Open)//如果数据库连接未打开,则执行打开数据库连接方法
            {
                conn.Open();//打开数据库连接
            }
            SqlCommand cmd = new SqlCommand(sql, conn);//创建命令对象(执行sql)
            if(par!=null)//如果该参数不为空,cmd对象需要添加该参数
            {
                cmd.Parameters.AddRange(par);
            }
            return cmd.ExecuteScalar();//执行命令,返回查询结果
        }
    }

    /// <summary>
    /// 查询一个读取器,每次读取一行数据
    /// </summary>
    /// <param name="sql">sql语句</param>
    /// <param name="par">参数</param>
    /// <returns></returns>
    public static SqlDataReader GetDataReader(string sql, SqlParameter[] par)
    {
        SqlConnection conn = new SqlConnection(constr);//打开数据库连接

        if (conn.State != ConnectionState.Open)//如果数据库连接未打开,则执行打开数据库连接方法
        {
            conn.Open();//打开数据库连接
        }
        SqlCommand cmd = new SqlCommand(sql, conn);//创建命令对象(执行sql)
        if (par != null)//如果该参数不为空,cmd对象需要添加该参数
        {
            cmd.Parameters.AddRange(par);
        }
        SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);//执行命令,获取SqlDataReader对象,由调用方关闭数据库连接和SqlDataReader连接

        return reader;

    }

    /// <summary>
    /// 返回一个DataTable结果集
    /// </summary>
    /// <param name="sql">sql语句</param>
    /// <param name="par">sql参数</param>
    /// <returns></returns>
    public static DataTable GetTable(string sql, SqlParameter[] par)
    {
        using (SqlConnection conn = new SqlConnection(constr))//打开数据库连接,并且执行完毕以后关闭数据库连接
        {
            if (conn.State != ConnectionState.Open)//如果数据库连接未打开,则执行打开数据库连接方法
            {
                conn.Open();//打开数据库连接
            }
            SqlCommand cmd = new SqlCommand(sql, conn);//创建命令对象(执行sql)
            if (par != null)//如果该参数不为空,cmd对象需要添加该参数
            {
                cmd.Parameters.AddRange(par);
            }
            SqlDataAdapter sda = new SqlDataAdapter(cmd);//创建适配器
            DataTable dt = new DataTable();//创建数据表
            sda.Fill(dt);//由适配器填充数据表
            return dt;//返回数据表
        }
    }


    /// <summary>
    /// 执行增删改
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="par"></param>
    /// <returns></returns>
    public static int Execute(string sql, SqlParameter[] par)
    {
        using (SqlConnection conn = new SqlConnection(constr))//打开数据库连接,并且执行完毕以后关闭数据库连接
        {
            if (conn.State != ConnectionState.Open)//如果数据库连接未打开,则执行打开数据库连接方法
            {
                conn.Open();//打开数据库连接
            }
            SqlCommand cmd = new SqlCommand(sql, conn); ;//创建命令对象(执行sql)
            if (par != null)//如果该参数不为空,cmd对象需要添加该参数
            {
                cmd.Parameters.AddRange(par);
            }
            int index = cmd.ExecuteNonQuery();//执行sql得到受影响行数
            return index;//返回受影响行数
        }
    }

public static DataSet GetDataSet(string sql)
    {
        using (SqlConnection conn = new SqlConnection(constr))
        {
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand(sql, conn);
            DataSet ds = new DataSet();
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(ds);
            return ds;
        }
    }
}

SqlHelper数据库操作通用类
///
/// 数据库操作通用类
///
public class SqlHelper
{
private static string connStr = “Server=.;Database=HiQQ;uid=sa;pwd=sasa”;//连接字符串

    /// <summary>
    /// 执行sql语句得到第一个单元格的值
    /// </summary>
    public static object Scalar(string sql, SqlParameter[] parameters)
    {
        using (SqlConnection conn = new SqlConnection(connStr))//创建连接对象
        {
            SqlCommand comm = new SqlCommand();//创建命令对象
            PrepareCommand(comm, conn, sql,parameters);//预编译命令对象
            object obj = comm.ExecuteScalar();//执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
            return obj;//返回结果
        }
    }
    /// <summary>
    /// 执行增删改,并返回受影响的行数
    /// </summary>
    public static int Execute(string sql, SqlParameter[] parameters)
    {
        using (SqlConnection conn = new SqlConnection(connStr))//创建连接对象
        {
            SqlCommand comm = new SqlCommand();//创建命令对象
            PrepareCommand(comm, conn, sql,parameters);//预编译命令对象
            int i = comm.ExecuteNonQuery();//执行增删改,并返回受影响的行数
            return i;//返回结果
        }
    }

    /// <summary>
    /// 执行sql语句得到数据表
    /// </summary>
    public static DataTable ExcuteTable(string sql, SqlParameter[] parameters)
    {
        using (SqlConnection conn = new SqlConnection(connStr))//创建连接对象
        {
            using (SqlCommand comm = new SqlCommand())//创建命令对象
            {
                PrepareCommand(comm, conn, sql,parameters);//预编译命令对象
                SqlDataAdapter sda = new SqlDataAdapter(comm);//创建数据库适配器对象
                DataTable dt = new DataTable();//创建数据表对象
                sda.Fill(dt);//填充数据表
                return dt;//返回数据表
            }
        }
    }
    /// <summary>
    /// 预编译命令对象--为命令对象制定连接对象和要执行的sql语句
    /// </summary>
    private static void PrepareCommand(SqlCommand comm, SqlConnection conn, string sql, SqlParameter[] parameters)
    {
        if (conn.State != ConnectionState.Open)//如果连接不是处于打开状态
        {
            conn.Open();//就打开连接
        }
        comm.Connection = conn;//设置命令对象的连接对象
        comm.CommandText = sql;//设置命令对象要执行的sql语句
        if (parameters != null)
        {
            comm.Parameters.AddRange(parameters);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值