/// <summary>
/// SQL Server 帮助类
/// </summary>
public class SqlDbHelper
{
private static string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
/// <summary>
/// 设置数据库连接字符串
/// </summary>
public static string ConnectionString
{
get { return connString; }
set { connString = value; }
}
#region 非连接式查询操作的方法,用于获取多条查询记录
/// <summary>
/// 非连接式查询操作的方法,用于获取多条查询记录
/// </summary>
/// <returns></returns>
private static DataTable ExecuteDataTable(string commandText, CommandType commandType, SqlParameter[] parameters)
{
DataTable data = new DataTable();//实例化DataTable,用于装载查询结果集
using (SqlConnection connection = new SqlConnection(connString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
//设置command的CommandType为指定的CommandType
command.CommandType = commandType;
//如果同时传入了参数,则添加这些参数
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
//通过包含查询SQL的SqlCommand实例来实例化SqlDataAdapter
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(data);//填充DataTable
}
}
return data;
}
/// <summary>
/// 重载只执行SqL语句
/// </summary>
/// <param name="commandText"></param>
/// <returns></returns>
public static DataTable ExceuteDataTable(string commandText)
{
return ExecuteDataTable(commandText, CommandType.Text, null);
}
/// <summary>
/// 重载可执行没有参数的存储过程
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <returns></returns>
public static DataTable ExceuteDataTable(string commandText, CommandType commandType)
{
return ExecuteDataTable(commandText, commandType, null);
}
#endregion
#region 连接式查询操作的方法,用于获取多条查询记录
/// <summary>
/// 连接式查询操作的方法,用于获取多条查询记录
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string commandText, CommandType commandType, SqlParameter[] parameters)
{
SqlConnection connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(commandText, connection);
//设置command的CommandType为指定的CommandType
command.CommandType = commandType;
//如果同时传入了参数,则添加这些参数
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
connection.Open();
//CommandBehavior.CloseConnection参数指示关闭Reader对象时关闭与其关联的Connection对象
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string commandText)
{
return ExecuteReader(commandText, CommandType.Text,null);
}
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string commandText, CommandType commandType)
{
return ExecuteReader(commandText, commandType, null);
}
#endregion
#region 从数据库中检索单个值
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static Object ExecuteScalar(string commandText, CommandType commandType, SqlParameter[] parameters)
{
object result= null;
using (SqlConnection connection=new SqlConnection(connString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
//设置command的CommandType为指定的CommandType
command.CommandType = commandType;
//如果同时传入了参数,则添加这些参数
if (parameters!=null)
{
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
connection.Open();//打开数据库连接
result = command.ExecuteScalar();
}
}
return result;
}
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <returns></returns>
public static object ExecuteScalar(string commandText)
{
return ExecuteScalar(commandText, CommandType.Text, null);
}
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <returns></returns>
public static object ExecuteScalar(string commandText,CommandType commandType)
{
return ExecuteScalar(commandText, commandType, null);
}
#endregion
#region 对数据库执行增、删、改操作
/// <summary>
/// 执行增、删、改操作
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string commandText, CommandType commandType, SqlParameter[] parameters)
{
int count = 0;
using (SqlConnection connection=new SqlConnection(connString))
{
using (SqlCommand command=new SqlCommand(commandText,connection))
{
//设置command的CommandType为指定的CommandType
command.CommandType = commandType;
//如果同时传入了参数,则添加这些参数
if (parameters!=null)
{
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
connection.Open();//打开数据库连接
count = command.ExecuteNonQuery();
}
}
return count;//返回执行增、删、改
}
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string commandText)
{
return ExecuteNonQuery(commandText, CommandType.Text, null);
}
/// <summary>
///
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandType"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string commandText, CommandType commandType)
{
return ExecuteNonQuery(commandText, commandType, null);
}
#endregion
}