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; } } } }