using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace DBUtility
{
public class SQLHelper
{
private SqlConnection con;
public SQLHelper()
{
con = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ToString());
}
public SQLHelper(String ConnectionString)
{
con = new SqlConnection(ConnectionString);
}
/// <summary>
/// Execute SqlCommand
/// </summary>
/// <param name="proc_name"></param>
/// <param name="param"></param>
public void ExecuteSqlCommand(string proc_name, SqlParameter[] param)
{
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(proc_name, con);
cmd.Transaction = tran;
cmd.CommandType = CommandType.StoredProcedure;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
cmd.Parameters.Add(parameter);
}
}
try
{
cmd.ExecuteNonQuery();
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
}
/// <summary>
/// Execute SqlCommand
/// </summary>
/// <param name="proc_name"></param>
public void ExecuteSqlCommand(string proc_name)
{
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(proc_name, con);
cmd.Transaction = tran;
cmd.CommandType = CommandType.StoredProcedure;
try
{
cmd.ExecuteNonQuery();
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
}
/// <summary>
/// Return DataTable
/// </summary>
/// <param name="proc_name"></param>
/// <param name="param"></param>
/// <returns></returns>
public DataTable ExecuteDataTable(string proc_name, SqlParameter[] param)
{
DataTable dt = new DataTable();
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlDataAdapter sda = new SqlDataAdapter(proc_name, con);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Transaction = tran;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
sda.SelectCommand.Parameters.Add(parameter);
}
}
try
{
sda.Fill(dt);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
return dt;
}
/// <summary>
/// Return DataTable
/// </summary>
/// <param name="proc_name"></param>
/// <returns></returns>
public DataTable ExecuteDataTable(string proc_name)
{
DataTable dt = new DataTable();
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlDataAdapter sda = new SqlDataAdapter(proc_name, con);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Transaction = tran;
try
{
sda.Fill(dt);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
return dt;
}
/// <summary>
/// Return DataSet
/// </summary>
/// <param name="proc_name"></param>
/// <returns></returns>
public DataSet ExecuteDataSet(string proc_name)
{
DataSet ds = new DataSet();
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlDataAdapter sda = new SqlDataAdapter(proc_name, con);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Transaction = tran;
try
{
sda.Fill(ds);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
return ds;
}
/// <summary>
/// Return DataSet
/// </summary>
/// <param name="proc_name"></param>
/// <param name="param"></param>
/// <returns></returns>
public DataSet ExecuteDataSet(string proc_name, SqlParameter[] param)
{
DataSet ds = new DataSet();
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlDataAdapter sda = new SqlDataAdapter(proc_name, con);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Transaction = tran;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
sda.SelectCommand.Parameters.Add(parameter);
}
}
try
{
sda.Fill(ds);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
return ds;
}
/// <summary>
/// Return DataReader
/// </summary>
/// <param name="proc_name"></param>
/// <param name="param"></param>
/// <returns></returns>
public SqlDataReader ExecuteReader(string proc_name, SqlParameter[] param)
{
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(proc_name, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Transaction = tran;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
cmd.Parameters.Add(parameter);
}
}
SqlDataReader sdr;
try
{
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
}
catch (Exception ex)
{
throw (ex);
}
finally
{
}
return sdr;
}
/// <summary>
/// Return DataTable
/// </summary>
/// <param name="SqlStr"></param>
/// <param name="param"></param>
/// <returns></returns>
public DataTable ExecuteDataTableSql(string SqlStr, SqlParameter[] param)
{
DataTable dt = new DataTable();
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlDataAdapter sda = new SqlDataAdapter(SqlStr, con);
sda.SelectCommand.CommandType = CommandType.Text;
sda.SelectCommand.Transaction = tran;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
sda.SelectCommand.Parameters.Add(parameter);
}
}
try
{
sda.Fill(dt);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
return dt;
}
/// <summary>
/// Execute SqlCommand
/// </summary>
/// <param name="SqlStr"></param>
/// <param name="param"></param>
public void ExecuteSqlCommandSql(string SqlStr, SqlParameter[] param)
{
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(SqlStr, con);
cmd.Transaction = tran;
cmd.CommandType = CommandType.Text;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
cmd.Parameters.Add(parameter);
}
}
try
{
cmd.ExecuteNonQuery();
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
}
/// <summary>
/// Return DataReader
/// </summary>
/// <param name="SqlStr"></param>
/// <param name="param"></param>
/// <returns></returns>
public SqlDataReader ExecuteReaderSql(string SqlStr, SqlParameter[] param)
{
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(SqlStr, con);
cmd.CommandType = CommandType.Text;
cmd.Transaction = tran;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
cmd.Parameters.Add(parameter);
}
}
SqlDataReader sdr;
try
{
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
}
catch (Exception ex)
{
throw (ex);
}
finally
{
}
return sdr;
}
/// <summary>
/// Return DataSet
/// </summary>
/// <param name="proc_name"></param>
/// <param name="param"></param>
/// <returns></returns>
public DataSet ExecuteDataSetSql(string SqlStr, SqlParameter[] param)
{
DataSet ds = new DataSet();
con.Open();
SqlTransaction tran = con.BeginTransaction();
SqlDataAdapter sda = new SqlDataAdapter(SqlStr, con);
sda.SelectCommand.CommandType = CommandType.Text;
sda.SelectCommand.Transaction = tran;
if (param != null)
{
foreach (SqlParameter parameter in param)
{
ReplaceParameters(parameter);
sda.SelectCommand.Parameters.Add(parameter);
}
}
try
{
sda.Fill(ds);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw (ex);
}
finally
{
con.Close();
}
return ds;
}
/// <summary>
/// Replace Parameters
/// </summary>
/// <param name="SingleParameter"></param>
/// <returns></returns>
private SqlParameter ReplaceParameters(SqlParameter SingleParameter)
{
if (SingleParameter.Value is String)
{
SingleParameter.Value.ToString().Replace(@"\", @"\\");
SingleParameter.Value.ToString().Replace("'", "\"");
}
return SingleParameter;
}
}
调用方法 引入命名空间
SQLHelper sh= new SQLHelper();
DataTable dt = new DataTable();
SqlParameter[] param ={ new SqlParameter("@ID", SqlDbType.Int), new SqlParameter("@Title", SqlDbType.NVarChar) };
param[0].Value = 1;
param[1].Value = "档案管理";
dt = sh.ExecuteDataTable("sp_UDS_DabyGetAll", param);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现