1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 //对数据库进行操作引入命名空间 6 using System.Data; 7 using System.Data.SqlClient; 8 using System.Configuration; 9 10 11 namespace DAL 12 { 13 public class SQLhelper 14 { 15 16 17 /// 变量定义<summary> 18 /// </summary> 19 private SqlConnection conn = null; 20 private SqlCommand cmd = null; 21 private SqlDataReader sdr = null; 22 23 /// SQLhelper connStr 字符串的连接<summary> 24 /// </summary> 25 04 011 26 public SQLhelper() 27 { 28 string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //连接SQL数据表 29 conn = new SqlConnection(connStr); //连接通道 30 31 } 32 33 34 35 /// 获取conn<summary> 36 /// </summary> 37 /// <returns>为什么要这样写有什么意义呢?</returns> 38 private SqlConnection GetConn() 39 { 40 if (conn.State == ConnectionState.Closed) //-判断当前连接的状态 如果当前的连接是关闭状态的话 结果为True 41 { 42 conn.Open(); //-打开数据库 43 } 44 45 return conn; //返回结果 46 } 47 48 49 50 51 /// 该方法传入一个增删改SQL语句或是存储过程<summary> 52 /// </summary> 53 /// <param name="sql">要执行的增删改SQL语句或是存储过程</param> 54 /// <returns>返回更新的记录数</returns> 55 public int ExecuteNonQuery(string cmdText,CommandType ct) 56 { 57 //-执行非查询 比如说 insert Updata Delect 58 //不定义的时候返回的初值是零 59 int res; 60 try 61 { 62 //-1、将预见可能引发异常的代码包含在try语句块中。 63 //-2、如果发生了异常,则转入catch的执行。 64 cmd = new SqlCommand(cmdText, GetConn()); 65 66 cmd.CommandType = ct; 67 res = cmd.ExecuteNonQuery(); 68 } 69 catch (Exception ex) 70 { 71 //-这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。 72 throw ex; 73 } 74 finally 75 { 76 //-不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally 77 //-清理工作。如关闭数据库连接。 78 if (conn.State == ConnectionState.Open) 79 { 80 conn.Close(); 81 } 82 83 } 84 return res; //-返回给调用者 85 } 86 87 88 /// 执行带参数的增删改语句或是存储过程<summary> 89 /// 执行带参数的增删改语句或是存储过程 90 /// </summary> 91 /// <param name="sql">带参数的SQL语句或是存储过程</param> 92 /// <param name="paras">参数集合</param> 93 /// <returns></returns> 94 95 public int ExecuteNonQuery(string cmdText, SqlParameter[] paras,CommandType ct) 96 { 97 int res; 98 using (cmd = new SqlCommand(cmdText, GetConn())) 99 { 100 cmd.CommandType = ct; 101 cmd.Parameters.AddRange(paras); //将每个查询出的数 添加到数组 102 103 res = cmd.ExecuteNonQuery(); 104 } 105 106 return res; 107 108 } 109 110 111 /// 该方法传入一个查询SQL语句或是存储过程<summary> 112 /// 该方法传入一个查询SQL语句或是存储过程 113 /// </summary> 114 /// <param name="cmtText">SQL查询语句或存储过程</param> 115 /// <returns></returns> 116 public DataTable ExecuteQuery(string cmtText,CommandType ct) 117 { 118 DataTable dt = new DataTable(); 119 cmd = new SqlCommand(cmtText, GetConn()); 120 cmd.CommandType = ct; 121 //关系sdr的同是将会关闭conn 122 using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 123 { 124 dt.Load(sdr); 125 } 126 return dt; 127 } 128 129 130 /// 执行带参数的SQL语句或是存储过程<summary> 131 /// 执行带参数的SQL语句或是存储过程 132 /// </summary> 133 /// <param name="cmdText">SQL语句或是存储过程</param> 134 /// <param name="paras"></param> 135 /// <returns></returns> 136 public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras,CommandType ct) 137 { 138 DataTable dt = new DataTable(); 139 140 cmd = new SqlCommand(cmdText, GetConn()); 141 cmd.CommandType = ct; 142 cmd.Parameters.AddRange(paras); 143 //关系sdr的同是将会关闭conn 144 using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 145 { 146 dt.Load(sdr); 147 } 148 return dt; 149 } 150 151 } 152 153 }