DBHelper 数据库帮助类

  1     /// <summary>
  2     /// 数据库帮助类
  3     /// <author>vito</author>
  4     /// </summary>
  5     public class DBHelper
  6     {
  7           
8
9 /// <summary> 10 /// 数据库连接字符串 11 /// </summary> 12 private string connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"].ToString(); 13 14 15 /// <summary> 16 /// 一个有效的数据库连接对象 17 /// </summary> 18 private SqlConnection _MyConnection; 19 public SqlConnection MyConnection 20 { 21 get 22 { 23 if(_MyConnection == null) 24 { 25 _MyConnection = new SqlConnection(connStr); 26 } 27 return _MyConnection; 28 } 29 } 30 31 32 /// <summary> 33 /// 返回受影响行数 34 /// </summary> 35 /// <param name="cmdText">SQL语句</param> 36 /// <param name="commandParameters">参数集</param> 37 /// <returns></returns> 38 public int MyExecuteNonQuery(string cmdText, params SqlParameter[] commandParameters) 39 { 40 int result = 0; 41 SqlCommand cmd = new SqlCommand(); 42 SqlConnection conn = MyConnection; 43 try 44 { 45 PrepareCommand(cmd, conn, null, cmdText, commandParameters); 46 result = cmd.ExecuteNonQuery(); 47 } 48 catch(SqlException ex) 49 { 50 throw new Exception(ex.Message); 51 } 52 finally 53 { 54 cmd.Parameters.Clear(); 55 } 56 return result; 57 } 58 59 60 61 /// <summary> 62 /// 返回DataSet 63 /// </summary> 64 /// <param name="cmdText">SQL语句</param> 65 /// <param name="commandParameters">参数集</param> 66 /// <returns></returns> 67 public DataSet MyExecuteDataset(string cmdText, params SqlParameter[] commandParameters) 68 { 69 DataSet ds = new DataSet(); 70 SqlConnection conn = MyConnection; 71 SqlCommand cmd = new SqlCommand(); 72 PrepareCommand(cmd, conn, null, cmdText, commandParameters); 73 using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 74 { 75 try 76 { 77 da.Fill(ds); 78 } 79 catch (SqlException ex) 80 { 81 throw new Exception(ex.Message); 82 } 83 finally 84 { 85 cmd.Parameters.Clear(); 86 } 87 } 88 return ds; 89 } 90 91 /// <summary> 92 /// 返回DataReader (使用后请关闭DataReader) 93 /// </summary> 94 /// <param name="cmdText">SQL语句</param> 95 /// <param name="commandParameters">参数集</param> 96 /// <returns></returns> 97 public SqlDataReader MyExecuteReader(string cmdText, params SqlParameter[] commandParameters) 98 { 99 SqlConnection conn = MyConnection; 100 SqlCommand cmd = new SqlCommand(); 101 try 102 { 103 PrepareCommand(cmd,conn,null,cmdText,commandParameters); 104 SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);//关闭DataReader的同时,Connection也将同时关闭 105 return myReader; 106 } 107 catch(SqlException ex) 108 { 109 throw new Exception(ex.Message); 110 } 111 finally 112 { 113 cmd.Parameters.Clear(); 114 } 115 } 116 117 /// <summary> 118 /// 返回首行首列的值 119 /// </summary> 120 /// <param name="cmdText">SQL语句</param> 121 /// <param name="commandParameters">参数集</param> 122 /// <returns></returns> 123 public object MyExecuteScalar(string cmdText,params SqlParameter[] commandParameters) 124 { 125 SqlConnection conn = MyConnection; 126 SqlCommand cmd = new SqlCommand(); 127 try 128 { 129 PrepareCommand(cmd,conn,null,cmdText,commandParameters); 130 return cmd.ExecuteScalar(); 131 } 132 catch(SqlException ex) 133 { 134 throw new Exception(ex.Message); 135 } 136 finally 137 { 138 cmd.Parameters.Clear(); 139 } 140 } 141 142 /// <summary> 143 /// 设置SqlCommand 144 /// </summary> 145 /// <param name="cmd">执行对象</param> 146 /// <param name="conn">连接对象</param> 147 /// <param name="trans">事务</param> 148 /// <param name="cmdText">SQL语句</param> 149 /// <param name="cmdParms">参数集</param> 150 private void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms) 151 { 152 if (conn.State != ConnectionState.Open) 153 conn.Open(); 154 cmd.Connection = conn; 155 cmd.CommandText = cmdText; 156 if (trans != null) 157 cmd.Transaction = trans; 158 cmd.CommandType = CommandType.Text; 159 if (cmdParms != null) 160 { 161 foreach (SqlParameter parameter in cmdParms) 162 { 163 if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) 164 { 165 parameter.Value = DBNull.Value; 166 } 167 cmd.Parameters.Add(parameter); 168 } 169 } 170 } 171 }

 

posted @ 2016-08-04 08:44  李怀瑾  阅读(1162)  评论(4编辑  收藏  举报