using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace Dal { class sqlhelper { static string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; static SqlConnection conn = new SqlConnection(constr); public static void ConnOpen() { if (conn.State == System.Data.ConnectionState.Closed) { conn.Open(); } } public static void ConnClose() { if (conn.State == System.Data.ConnectionState.Open) { conn.Close(); } } //封装查询 public static SqlDataReader ExecuteReader(string sql, params object[] parms) { ConnOpen(); SqlCommand cmd = new SqlCommand(sql, conn); for (int i = 0; i < parms.Length; i++) { cmd.Parameters.AddWithValue("@" + i, parms[i]); } SqlDataReader sdr = cmd.ExecuteReader(); return sdr; } // 封装修改(删除 增加 更新) public static bool GetExcuteNonQuery(string sql, params object[] parms) { ConnOpen(); SqlCommand cmd = new SqlCommand(sql, conn); for (int i = 0; i < parms.Length; i++) { cmd.Parameters.AddWithValue("@" + i, parms[i]); } int j = cmd.ExecuteNonQuery(); if (j > 0) { return true; } else { return false; } } //封装执行返回第一行第一列的语句 public static object GetExcuteScalar(string sql, params object[] parms) { ConnOpen(); SqlCommand cmd = new SqlCommand(sql, conn); for (int i = 0; i < parms.Length; i++) { cmd.Parameters.AddWithValue("@" + i, parms[i]); } object obj = cmd.ExecuteScalar(); return obj; } //封装数据集 public static DataTable GetDateTable(string sql, params object[] parms) { SqlDataAdapter sda = new SqlDataAdapter(sql, constr); for (int i = 0; i < parms.Length; i++) { sda.SelectCommand.Parameters.AddWithValue("@" + i, parms[i]); } DataTable dt = new DataTable(); sda.Fill(dt); return dt; } //可以分页 ,也可以以获取数据起始 public static DataSet GetDateSet(string sql, int index, int maxcount, string name, params object[] parms) { SqlDataAdapter sda = new SqlDataAdapter(sql, constr); for (int i = 0; i < parms.Length; i++) { sda.SelectCommand.Parameters.AddWithValue("@" + i, parms[i]); } DataTable dt = new DataTable(); DataSet ds = new DataSet(); sda.Fill(ds, index, maxcount, name); return ds; } /// <summary> /// /// </summary> /// <param name="sql">要执行的sql语句</param> /// <param name="commandType">要执行的查询语句类型,如存储过程或SQL文本命令</param> /// <param name="parameters">Transact-SQL语句或者存储过程的参数数组</param> /// <returns></returns> public static int getExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters) { SqlConnection conn = new SqlConnection(constr); SqlCommand cmd = new SqlCommand(sql, conn) { CommandType = commandType }; if (parameters != null) { foreach (SqlParameter parameter in parameters) { cmd.Parameters.Add(parameter); } } conn.Open(); int count = cmd.ExecuteNonQuery(); conn.Close(); return count; } } }