public static class SQLHelper { //获取连接字符串,,首先添加对configuration的引用 private static string connStr = ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString; //ExecuteNonQuery方法----非查询的方法 public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters) { //1、创建连接对象 using (SqlConnection conn=new SqlConnection(connStr)) { //2、创建执行对象 using (SqlCommand cmd=new SqlCommand(sql,conn)) { //3、判断添加占位符集合 if (parameters!=null) { cmd.Parameters.AddRange(parameters); } //4、执行操作前一步 打开连接 conn.Open(); //5、执行相应的操作 return cmd.ExecuteNonQuery(); } } } //ExecuteScalar方法-----返回查询结果的第一行第一列 public static object ExecuteScalar(string sql,params SqlParameter[] parameters) { //1、创建连接对象 using(SqlConnection conn=new SqlConnection(connStr)) { //2、创建执行对象 using(SqlCommand cmd=new SqlCommand(sql,conn)) { //3、判断并添加占位符集合 if(parameters!=null) { cmd.Parameters.AddRange(parameters); } //4、执行语句前一部打开链接 conn.Open(); //5、执行相应操作 return cmd.ExecuteScalar(); } } }
//返回DataTable的方法 public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters) { DataTable table=new DataTable(); //直接交给sqldataadapter执行 using (SqlDataAdapter adapter=new SqlDataAdapter(sql,connStr)) { //判断并添加占位符集合(利用存储过程),,返回结果 if(parameters!=null) { adapter.SelectCommand.Parameters.AddRange(parameters); } //将结果填充到table adapter.Fill(table); } return table; } public static SqlDataReader ExecuteReader(string sql,params SqlParameter[] parameters) { //因为每次都执行返回一行,不用using,,,创建连接 SqlConnection conn=new SqlConnection(connStr); //创建执行对象 using(SqlCommand cmd=new SqlCommand(sql,conn)) { if(parameters!=null) { cmd.Parameters.AddRange(parameters); } try { //判断连接对象是否是连接状态,不是就打开 if(conn.State==ConnectionState.Closed) { conn.Open(); } //在连接打开的前提下执行读取命令,,随着conn的关闭而关闭 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } //没有可读数据的时候关闭连接变释放资源 catch { conn.Close(); conn.Dispose(); throw; } } } }