欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ADO.net

程序员文章站 2024-01-12 16:34:22
...

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);
        }
    }
}
相关标签: ADO

上一篇: 集合的工具类

下一篇: