using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;using System.Data.SqlClient;using System.Data;namespace _03第四季01SQLHelper{ class SqlHelper { //连接字符串 private static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; #region 版本一 //执行增删改 public static int ExecuteNonQurey(string sql) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; return cmd.ExecuteNonQuery(); } } } //返回一行一列的查询结果 public static object ExecuteScalar(string sql) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; return cmd.ExecuteScalar(); } } } 返回多个查询结果,为什么会出错? 使用using(){}在{}之后系统会自动帮我们释放资源,所以在函数返回前连接已经关闭 //public static SqlDataReader ExecuteReader(string sql) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // return cmd.ExecuteReader(); // } // } //} public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] spms) //public static SqlDataReader ExecuteReader(string sql, CommandType cType, params SqlParameter[] spms) { SqlConnection conn = new SqlConnection(connStr); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; //cmd.CommandType = cType;//不设置的话,使用默认 if (spms != null) cmd.Parameters.AddRange(spms); try { conn.Open(); return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); } catch { conn.Close(); conn.Dispose(); throw; } } } //返回数据集 public static DataSet ExecuteDataSet(string sql) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); return dataset; } } } //一般查询语句结果只有一个表,所以可以返回DataTable类型 public static DataTable ExecuteDataTable(string sql) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); return dataset.Tables[0]; } } } #endregion //#region 版本二 //public static int ExecuteNonQurey(string sql,SqlParameter[] parameters ) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // //foreach(SqlParameter param in parameters) // //{ // // cmd.Parameters.Add(param); // //} // cmd.Parameters.AddRange(parameters);//等于foreach的写法 // return cmd.ExecuteNonQuery(); // } // } //} 返回一行一列的查询结果 //public static object ExecuteScalar(string sql,SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // cmd.Parameters.AddRange(parameters); // return cmd.ExecuteScalar(); // } // } //} 返回数据集 //public static DataSet ExecuteDataSet(string sql,SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // cmd.Parameters.AddRange(parameters); // SqlDataAdapter adapter = new SqlDataAdapter(cmd); // DataSet dataset = new DataSet(); // adapter.Fill(dataset); // return dataset; // } // } //} 一般查询语句结果只有一个表,所以可以返回DataTable类型 //public static DataTable ExecuteDataTable(string sql,SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // cmd.Parameters.AddRange(parameters); // SqlDataAdapter adapter = new SqlDataAdapter(cmd); // DataSet dataset = new DataSet(); // adapter.Fill(dataset); // return dataset.Tables[0]; // } // } //} //#endregion #region 版本三 可变参数 //public static int ExecuteNonQurey(string sql,params SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // //foreach(SqlParameter param in parameters) // //{ // // cmd.Parameters.Add(param); // //} // cmd.Parameters.AddRange(parameters);//等于foreach的写法 // return cmd.ExecuteNonQuery(); // } // } //} 返回一行一列的查询结果 //public static object ExecuteScalar(string sql,params SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // cmd.Parameters.AddRange(parameters); // return cmd.ExecuteScalar(); // } // } //} 返回数据集 //public static DataSet ExecuteDataSet(string sql,params SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // cmd.Parameters.AddRange(parameters); // SqlDataAdapter adapter = new SqlDataAdapter(cmd); // DataSet dataset = new DataSet(); // adapter.Fill(dataset); // return dataset; // } // } //} 一般查询语句结果只有一个表,所以可以返回DataTable类型 //public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters) //{ // using (SqlConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // using (SqlCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // cmd.Parameters.AddRange(parameters); // SqlDataAdapter adapter = new SqlDataAdapter(cmd); // DataSet dataset = new DataSet(); // adapter.Fill(dataset); // return dataset.Tables[0]; // } // } //} #endregion }}