现在建立的项目多用 Entity Formwork 很少再使用 DBhHelper
但在一些极端情况下,DBHelper还是有很大裨益的
仅作记录,方便使用
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace AssetManagementSystem.Code
{
public class DBHelper
{
/// <summary>
/// 获取数据库连接字符串
/// </summary>
private static string connString = ConfigurationManager.ConnectionStrings["AssetDBEntities"].ConnectionString;
//private static string connString = "Data Source=.;Initial Catalog=AssetDB;Integrated Security=True;MultipleActiveResultSets=True";
/// <summary>
/// 此方法专门用来执行增、删、改的sql语句;如果执行成功,则返回true;如果执行失败,则返回false;
/// </summary>
/// <param name="sql">参数化的sql语句</param>
/// <param name="para">SqlParameter数组型的参数:如果此sql语句没有参数则para为null;否则在调用方传一个SqlParameter[]数组</param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, params SqlParameter[] para)
{
try
{
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
if (para != null)
{
cmd.Parameters.AddRange(para);
}
//打开连接
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int i = cmd.ExecuteNonQuery();
return i > 0 ? true : false;
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// 此方法专门用来执行增、删、改的sql语句;如果执行成功,则返回true;如果执行失败,则返回false;
/// </summary>
/// <param name="sql">参数化的sql语句</param>
/// <param name="para">SqlParameter数组型的参数:如果此sql语句没有参数则para为null;否则在调用方传一个SqlParameter[]数组</param>
/// <param name="isStoredProcedure">代表要执行的是否是存储过程</param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, SqlParameter[] para, bool isStoredProcedure)
{
try
{
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
//判断要执行的是否是存储过程
if (isStoredProcedure)
{
cmd.CommandType = CommandType.StoredProcedure;
}
//判断sql语句里面是否含有参数
if (para != null)
{
cmd.Parameters.AddRange(para);
}
//打开连接
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int i = cmd.ExecuteNonQuery();
return i > 0 ? true : false;
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// 此方法专门用来执行sql语句,并且返回一个DataTable对象
/// </summary>
/// <param name="sql">参数化的sql语句(一般为含有select关键字的sql语句)</param>
/// <param name="para">SqlParameter数组型的参数:如果此sql语句没有参数则para为null;否则在调用方法传一个SqlParameter[]数组</param>
/// <returns>DataTable</returns>
public static DataTable ExecuteSelect(string sql, SqlParameter[] para)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(sql, connString);
if (para != null)
{
da.SelectCommand.Parameters.AddRange(para);
}
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// 此方法专门用来执行sql语句,并且返回一个DataTable对象
/// </summary>
/// <param name="sql">参数化的sql语句(一般为含有select关键字的sql语句)</param>
/// <param name="para">SqlParameter数组型的参数:如果此sql语句没有参数则para为null;否则在调用方法传一个SqlParameter[]数组</param>
/// <param name="isStoredProcedure">代表要执行的是否是存储过程</param>
/// <returns>DataTable</returns>
public static DataTable ExecuteSelect(string sql, SqlParameter[] para, bool isStoredProcedure)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(sql, connString);
if (para != null)
{
da.SelectCommand.Parameters.AddRange(para);
}
//判断当前要执行的是否是存储过程
if (isStoredProcedure)
{
da.SelectCommand.CommandType = CommandType.StoredProcedure;
}
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception)
{
throw;
}
}
}
}