连接SQL数据的DAL
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data.SqlClient; using System.Data; namespace DAL { public class SqlHelper { //连接字符 public static string sqlconnstring = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; #region 一个已经连接等待使用的对象 ////// 创建一个连接好并等待使用的对象 /// /// 连接字符串 /// 已经建立的SqlCommand对象 /// 连接类型(存储过程还是字符串) /// 存储过程名或者SQL语句 /// 参数列表 public static void PrepareCommand(SqlConnection conn, SqlCommand cmd, CommandType cmdType, string sqlText, SqlParameter[] parms) { //判断数据库的连接状态 if (conn.State != ConnectionState.Open) { conn.Open(); } cmd.Connection = conn;//传递连接字符串 cmd.CommandText = sqlText;//存储过程名或者SQL语句 cmd.CommandType = cmdType;//连接类型 if (parms != null)//如果参数列表不为空 { foreach (var item in parms) { cmd.Parameters.Add(item); } } } #endregion #region ExecuteNonQuery ////// 执行一个返回影响行数的SQLCommand命令 /// /// 连接字符串 /// 命令类型(存储过程,Sql语句) /// 存储过程名称,或者Sql语句 /// 参数列表 ///返回数据库中受到影响的行数 public static int ExecuteNonQuery(string connentionstring, CommandType cmdType, string sqlText, SqlParameter[] parms) { SqlCommand cmd = new SqlCommand(); try { using (SqlConnection conn = new SqlConnection(connentionstring)) { PrepareCommand(conn, cmd, cmdType, sqlText, parms); int value = cmd.ExecuteNonQuery(); return value; } } catch (Exception e) { throw e; } } #endregion #region ExecuteReader ////// 一个顺序只读的SqlCommand对象 /// /// 连接字符串 /// 连接类型(存储过程,或者SQL语句) /// 存储过程名或者SQL语句 /// 数组话的参数列表 ///返回 一个SqlDataReader类型的结果集 public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string sqlText, SqlParameter[] parms) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); try { PrepareCommand(conn, cmd, cmdType, sqlText, parms); SqlDataReader sdr = cmd.ExecuteReader(); return sdr; } catch { conn.Close(); throw; } } #endregion #region ExecuteScalar ////// 执行一个返还第一行第一列的SqlCommand /// /// 连接字符串 /// 连接类型(存储过程,SQL语句) /// 存储过程名或者需要执行的SQL语句 /// 参数列表 ///返还一个Object 类型的值,使用过程中需要做类型转换 public static object ExecuteScalar(string connectionString, CommandType cmdtype, string sqltext, SqlParameter[] parms) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(conn, cmd, cmdtype, sqltext, parms); Object obj = cmd.ExecuteScalar(); return obj; } } #endregion #region ExecuteDataset ////// 执行一个返回DataSet集 /// /// 连接字符串 /// 连接类型(存储过程,SQL语句) /// 需要执行的SQL语句或存储过程名 /// 参数列表 ///返回一个DataSet集 public static DataSet ExecuteDataset(string connectionString, CommandType cmdType, string sqltext, SqlParameter[] parms) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(conn, cmd, cmdType, sqltext, parms); using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) { DataSet ds = new DataSet(); sda.Fill(ds); return ds; } } } #endregion } }