zoukankan      html  css  js  c++  java
  • SqlHelper 带详细中文注释

      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 } 
  • 相关阅读:
    【OI新闻】2016.10.06
    旧博客欢迎莅临
    【NYOJ42】一笔画问题
    LCIS最长公共上升子序列
    LIS最长上升子序列
    LCS最长公共子序列
    T2848 列车调度(二分或dp)
    二分图的最大匹配、完美匹配和匈牙利算法
    高精大水题
    最大0,1子矩阵
  • 原文地址:https://www.cnblogs.com/weiios/p/3757759.html
Copyright © 2011-2022 走看看