封装SqlHelper数据库
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace Student_MI { /// <summary> /// 数据库助手类 /// </summary> public class SqlHelper { private SqlConnection conn = null;//表示一个到 SQL Server 数据库的打开的链接 private SqlCommand cmd = null; //表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程 private SqlDataReader sdr = null; //提供一种从 SQL Server 数据库读取行的只进流的方式 /// <summary> /// 链接数据库 /// </summary> public SqlHelper() { string connStr = "Data Source=.;Initial Catalog=StudentManager;Integrated Security=True"; conn = new SqlConnection(connStr); } /// <summary> /// 打开数据库链接 /// </summary> /// <returns></returns> private SqlConnection GetConn() { if (conn.State == ConnectionState.Closed) { conn.Open(); } return conn; } /// <summary> /// 执行不带参数的增删改SQL语句或存储过程 /// </summary> /// <param name="cmdText">增删改SQL语句或存储过程</param> /// <param name="ct">命令类型</param> /// <returns></returns> public int ExecuteNonQuery(string cmdText, CommandType ct)// CommandType命令类型 { int res; try { cmd = new SqlCommand(cmdText, GetConn());//向打开的数据库中插入执行命令 cmd.CommandType = ct; //设置要执行命令的类型 res = cmd.ExecuteNonQuery();//执行增删查改用到的方法,返回受影响的行数,是一个整数类型 } catch (Exception ex) { throw ex; } finally { if (conn.State == ConnectionState.Open)//判断链接是否处于打开状态 { conn.Close(); } } return res; } /// <summary> /// 执行带参数的增删改SQL语句或存储过程 /// </summary> /// <param name="cmdText">增删改SQL语句或存储过程</param> /// <param name="ct">命令类型</param> /// <returns></returns> public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct) { int res; try { using (cmd = new SqlCommand(cmdText, GetConn())) { cmd.CommandType = ct; //cmd.Parameters的Add方法是增长一个参数,增长多个参数的的时候使用一个foreach循环而已 将指定的 SqlParameter 对象添加到 SqlParameterCollection 中 //cmd.Parameters的AddRange方法是增长一个参数的数组 将值数组添加到 SqlParameterCollection 的末尾 cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery();//执行增删查改用到的方法,返回受影响的行数,是一个整数类型 } } catch (Exception ex) { throw ex; } return res; } /// <summary> /// 执行查询SQL语句或存储过程 /// </summary> /// <param name="cmdText">查询SQL语句或存储过程</param> /// <param name="ct">命令类型</param> /// <returns>返回DataTable对象</returns> public DataTable ExecuteQuery(string cmdText, CommandType ct) { DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; try { using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } } catch (Exception ex) { throw ex; } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } return dt; } /// <summary> /// 执行带参数的查询SQL语句或存储过程 /// </summary> /// <param name="cmdText">查询SQL语句或存储过程</param> /// <param name="paras">参数集合</param> /// <param name="ct">命令类型</param> /// <returns></returns> public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct) { DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } return dt; } } }