using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; /// <summary> /// sql server数据操作的底层类 /// </summary> public class SQLHelper { public static string connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"]; //1.查询列表 GetTable /// <summary> /// 查询命令(sql 语句或过程名),返回一个数据表 /// </summary> /// <param name="cmdText">命令</param> /// <param name="type">命令类型</param> /// <param name="pms">sql参数</param> /// <returns></returns> public static DataTable GetTable(string cmdText,CommandType type, params SqlParameter[] pms) { SqlConnection conn = new SqlConnection(connStr); conn.Open(); SqlCommand cmd = new SqlCommand(cmdText, conn); cmd.CommandType = type; if (pms != null) //判断是不是有参数传递进来 判断数组是不是null { foreach (SqlParameter item in pms) { if (item != null) //判断数组中的每一个元素是不是为null { cmd.Parameters.Add(item); } } } SqlDataAdapter sda = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); sda.Fill(ds, "aa"); conn.Close(); //返回结果 DataTable dt = ds.Tables["aa"]; return dt; //************************************ } //给查询列表操作写一个执行sql语句的重载 /// <summary> /// 执行sql语句,返回数据表 /// </summary> /// <param name="sql">sql语句</param> /// <param name="pms">sql语句所需要的参数</param> /// <returns></returns> public static DataTable GetTable(string sql, params SqlParameter[] pms) { return GetTable(sql, CommandType.Text, pms); } //2.执行命令返回影响行数 ExecuteNonQuery public static int ExecuteNonQuery(string cmdText, CommandType type, params SqlParameter[] pms) { SqlConnection conn = new SqlConnection(connStr); conn.Open(); SqlCommand cmd = new SqlCommand(cmdText, conn); cmd.CommandType = type; if (pms != null) //判断是不是有参数传递进来 判断数组是不是null { foreach (SqlParameter item in pms) { if (item != null) //判断数组中的每一个元素是不是为null { cmd.Parameters.Add(item); } } } int i = cmd.ExecuteNonQuery(); conn.Close(); return i; } public static int ExecuteNonQuery(string sql, params SqlParameter[] pms) { return ExecuteNonQuery(sql, CommandType.Text, pms); } //3.查询返回结果中的首行首列 ExecuteSingle public static object ExecuteSingle(string cmdText, CommandType type, params SqlParameter[] pms) { SqlConnection conn = new SqlConnection(connStr); conn.Open(); SqlCommand cmd = new SqlCommand(cmdText, conn); cmd.CommandType = type; if (pms != null) //判断是不是有参数传递进来 判断数组是不是null { foreach (SqlParameter item in pms) { if (item != null) //判断数组中的每一个元素是不是为null { cmd.Parameters.Add(item); } } } object obj= cmd.ExecuteScalar(); conn.Close(); return obj; } public static object ExecuteSingle(string sql, params SqlParameter[] pms) { return ExecuteSingle(sql, CommandType.Text, pms); } //4.查询返回一个DataReader对象,让别人以游标的方式去读取数据 GetDataReader public static SqlDataReader GetDataReader(string cmdText, CommandType type, params SqlParameter[] pms) { SqlConnection conn = new SqlConnection(connStr); conn.Open(); SqlCommand cmd = new SqlCommand(cmdText, conn); cmd.CommandType = type; if (pms != null) //判断是不是有参数传递进来 判断数组是不是null { foreach (SqlParameter item in pms) { if (item != null) //判断数组中的每一个元素是不是为null { cmd.Parameters.Add(item); } } } SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return dr; } public static SqlDataReader GetDataReader(string sql, params SqlParameter[] pms) { return GetDataReader(sql, CommandType.Text, pms); } }