一、什么是SQLHelper
SqlHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法,SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类,后面包含进了Enterprise Library开源包中了。还有一个主要版本是dbhelper.org开源的sqlhelper组件,优点是简洁,高性能,不仅仅支持sqlserver,同时支持sqlserver、oracle、access、Mysql数据库,也是一个开源项目,提供免费下载。
SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。
二、怎么写SQLhelper助手类
SQLHelper分为四中情况:带参数的sql查询语句,带参数的增删改sql语句,不带参数的sql查询语句,sql增删改语句。看一下他们的代码(C#版)
① /// <summary>
/// 执行不带参数的 增删改sql语句或存储过程
/// </summary>
/// <param name="cmdText"></param>
/// <param name="ct">命令类型</param>
/// <returns></returns>
public int ExecuteNonQuery(string cmdText, CommandType ct)
{
int res;
try
{
cmd = new SqlCommand(cmdText , GetConn());
cmd.CommandType = ct;
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return res;
}
/// <summary>
/// 执行带参数的SQL增删改语句
/// </summary>
/// <param name="sql">sql增删改语句</param>
/// <param name="paras">参数集合</param>
/// <returns></returns>
public int ExecuteNonQuery(string cmdText,SqlParameter[] paras,CommandType ct)
{
int res;
using (cmd = new SqlCommand(cmdText , GetConn()))
{
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
res =cmd.ExecuteNonQuery ();
}
return res;
}
② /// <summary>
/// 该方法执行查询传入的sql查询语句或存储过程
/// </summary>
/// <param name="sql">命令类型</param>
/// <returns></returns>
public DataTable ExecuteQurey(string cmdText, CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
}
/// <summary>
/// 执行带参数的SQL语句,或存储过程
/// </summary>
/// <param name="cmdText"></param>
/// <param name="paras">sql查询语句</param></param>
/// <param name="ct">命令类型</param>
/// <returns></returns>
public DataTable ExecuteQurey(string cmdText, SqlParameter[] paras,CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText , GetConn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
using (sdr = cmd.ExecuteReader(CommandBehavior .CloseConnection ))
{
dt.Load(sdr);
}
return dt;
}
}
三、总结
前辈们的代码我们可以拿来直接用,但是我们必须知道该怎么用。C#版的sqlhelper就这么点东西。至于更深的用法,还希望大神赐教!如有错误欢迎指正,不胜感激。