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);
}
}
}