using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace DAL
{
public class SqlHelper
{
//获得数据库连接字符串
public static readonly string conString = ConfigurationManager.ConnectionStrings["sqlCon"].ConnectionString;
///
/// 创建数据库连接对象
///
/// 返回数据库连接对象
public static SqlConnection createCon()
{
return new SqlConnection(conString);
}
///
/// 创建执行对象
///
/// 文本内容
/// 文本类型
/// 可变参数数组
/// 返回执行对象
public static SqlCommand createCmd(string cmdText, CommandType cmdType, params SqlParameter[] param)
{
//实例化执行对象
SqlCommand cmd = new SqlCommand();
//执行连接对象
cmd.Connection = createCon();
//执行文本内容
cmd.CommandText = cmdText;
//选择文本类型
cmd.CommandType = cmdType;
//判断可变参数数组里是否为null 如果不为null 则添加进可变参数数组中
if (param != null)
foreach (SqlParameter p in param)
cmd.Parameters.Add(p);
//cmd.Parameters.Clear();//执行完后清理SqlParameter中的值
//返回执行对象
return cmd;
}
///
/// 创建ExcuteReader()方法
///
/// 文本内容
/// 文本类型
/// 可变参数数组
/// 返回读取对象
public static SqlDataReader ExcuteReader(string cmdText, CommandType cmdType, params SqlParameter[] param)
{
//创建执行对象
SqlCommand cmd = createCmd(cmdText, cmdType, param);
try
{
//打开连接
cmd.Connection.Open();
//执行读取方法
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//返回读取对象
return dr;
}
catch(Exception ex)
{
//关闭连接
cmd.Connection.Close();
//返回空
return null;
}
}
///
/// 创建ExecuteScalar()方法
///
/// 文本内容
/// 文本类型
/// 可变参数数组
/// 返回第1行第1列的值
public static Object ExecuteScalar(string cmdText, CommandType cmdType, params SqlParameter[] param)
{
//创建执行对象
SqlCommand cmd = createCmd(cmdText, cmdType, param);
try
{
//打开连接
cmd.Connection.Open();
//执行查询方法
Object obj = cmd.ExecuteScalar();
//返回第1行第1列的值
return obj;
}
catch(Exception EX)
{
//关闭连接
cmd.Connection.Close();
//返回空
return null;
}
}
///
/// 创建ExecuteNonQuery()方法
///
/// 文本内容
/// 文本类型
/// 可变参数数组
/// 返回受影响行数
public static int ExecuteNonQuery(string cmdText, CommandType cmdType, params SqlParameter[] param)
{
//创建执行对象
SqlCommand cmd = createCmd(cmdText, cmdType, param);
try
{
//打开连接
cmd.Connection.Open();
//执行ExecuteNonQuery()方法
int count = cmd.ExecuteNonQuery();
//关闭连接
cmd.Connection.Close();
//返回受影响行数
return count;
}
catch(Exception e)
{
string error = e.Message.ToString();
//关闭连接
cmd.Connection.Close();
//返回 0
return 0;
}
}
///
/// 调用存储过程
///
///
///
///
/// 返回DataTable类型的数据
public static DataTable TransferProcedure(string cmdText, CommandType cmdType, params SqlParameter[] param)
{
//创建执行对象
SqlCommand cmd = createCmd(cmdText, cmdType, param);
try
{
//打开连接
cmd.Connection.Open();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
//关闭连接
cmd.Connection.Close();
if (dt != null)
return dt;
else
return null;
}
catch
{
//关闭连接
cmd.Connection.Close();
//返回 0
return null;
}
}
}
}