public class SqlHelper
{
//sql连接对象
private static SqlConnection conConnection = null;
//数据库命令对象
private static SqlCommand conCommand = null;
public SqlHelper()
{
}
//获取数据库连接字符串
private static string getConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["DispatchDB"].ConnectionString;
}
//打开数据库连接
private static void openSqlConnection()
{
try
{
// 如果数据库连接对象状态为关闭
if (conConnection.State == ConnectionState.Closed)
{
// 打开连接
conConnection.Open();
}
}
catch (Exception ex)
{
}
}
//关闭数据库连接
private static void closeSqlConnection()
{
// 如果数据库连接对象不为空
if (conConnection != null)
{
try
{
// 如果数据库连接对象当前状态不是关闭
if (conConnection.State != ConnectionState.Closed)
{
// 关闭数据库连接,释放资源
conConnection.Close();
conConnection.Dispose();
}
}
catch (Exception ex)
{
}
}
}
#region 数据库操作方法
/// <summary>
/// insert,updata,delete
/// </summary>
/// <param name="sqlStr">sql语句或存储过程名</param>
/// <param name="cmdType">命令对象类型</param>
/// <param name="pms">分配给命令的SqlParamter参数数组</param>
/// <returns></returns>
public bool ExecuteNonQuery(string sqlStr, CommandType cmdType, params SqlParameter[] pms)
{
conConnection = new SqlConnection(getConnectionString());
//实例化数据库命令对象
using (conCommand = new SqlCommand(sqlStr, conConnection))
{
conCommand.CommandType = cmdType;
if (pms != null)
{
conCommand.Parameters.AddRange(pms);
}
try
{
SqlHelper.openSqlConnection();
return (int)conCommand.ExecuteNonQuery() > 0;
}
finally {
SqlHelper.closeSqlConnection();
}
}
}
/// <summary>
/// 返回结果集单个值
/// </summary>
/// <param name="sqlStr">sql语句或存储过程名</param>
/// <param name="cmdType">命令对象类型</param>
/// <param name="pms">分配给命令的SqlParamter参数数组</param>
/// <returns></returns>
public static object ExecuteScalar(string sqlStr, CommandType cmdType, params SqlParameter[] pms)
{
conConnection = new SqlConnection(getConnectionString());
//实例化数据库命令对象
using (conCommand = new SqlCommand(sqlStr, conConnection))
{
conCommand.CommandType = cmdType;
if (pms != null)
{
conCommand.Parameters.AddRange(pms);
}
try
{
SqlHelper.openSqlConnection();
return conCommand.ExecuteScalar();
}
finally
{
SqlHelper.closeSqlConnection();
}
}
}
/// <summary>
/// 返回SqlDataReader
/// </summary>
/// <param name="sqlStr">sql语句或存储过程名</param>
/// <param name="cmdType">命令对象类型</param>
/// <param name="pms">分配给命令的SqlParamter参数数组</param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string sqlStr, CommandType cmdType, params SqlParameter[] pms)
{
conConnection = new SqlConnection(getConnectionString());
//实例化数据库命令对象
using (conCommand = new SqlCommand(sqlStr, conConnection))
{
conCommand.CommandType = cmdType;
if (pms != null)
{
conCommand.Parameters.AddRange(pms);
}
try
{
SqlHelper.openSqlConnection();
return conCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
finally
{
SqlHelper.closeSqlConnection();
}
}
}
/// <summary>
/// 返回DataTable
/// </summary>
/// <param name="sqlStr">sql语句或存储过程名</param>
/// <param name="cmdType">命令对象类型</param>
/// <param name="pms">分配给命令的SqlParamter参数数组</param>
/// <returns></returns>
public static DataTable ExecuteDataTable(string sqlStr, CommandType cmdType, params SqlParameter[] pms)
{
conConnection = new SqlConnection(getConnectionString());
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, conConnection))
{
adapter.SelectCommand.CommandType = cmdType;
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
return dt;
}
}
#endregion
}
C# DAL层数据库操作类SqlHelper
最新推荐文章于 2026-05-26 12:52:14 发布
本文详细介绍了C#中用于数据库操作的SqlHelper类,包括其基本使用方法、连接池管理以及如何执行SQL查询和存储过程。通过实例展示了如何在DAL层进行增删改查操作,帮助开发者更好地理解和应用SqlHelper进行数据库交互。
664

被折叠的 条评论
为什么被折叠?



