SqlHelper就这么简单

一、SqlHelper作用:

SqlHelper用于简化你对数据库重复的操作包括:数据库的连接,数据库的增删改查。

也就是将原本复杂的事情简单化,说白了也就是一个类里面封装了一些方法,而这些方法大部分都是和数据库有关的。

二、SqlHelper的来源:

来源一:目前SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类当然我也没有真正看过她的里面到底有什么。

来源二:那就是我们自己用的,自己来写这个类。


三、简单介绍这个类里面有的方法:

方法1:对于SqlHelper的一个构造方法:

        目的:初始化数据库的连接字符串和Sqlconnection

方法2:获取连接的一个方法

方法3:执行SQL语句增删改或是存储过程

方法4:执行SQL查询语句

总的来说也就是这么多的东西,但是一还要考虑一些其他的东西,比如我上篇文章说的SQL注入的问题这就需要对方法3和方法4进行重构也就是带参数的方法3和方法4.

好了废话不多说了。

四、实践

[html]  view plain  copy
 print ?
  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.   
  24.   
  25.         /// SQLhelper connStr 字符串的连接<summary>  
  26.         /// </summary>  
  27.         public SQLhelper()  
  28.         {  
  29.             string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;  
  30.             conn = new SqlConnection(connStr);  
  31.   
  32.         }  
  33.   
  34.   
  35.   
  36.         /// 获取conn<summary>  
  37.         /// </summary>  
  38.         /// <returns>为什么要这样写有什么意义呢?</returns>  
  39.         private SqlConnection GetConn()  
  40.         {  
  41.             if (conn.State == ConnectionState.Closed)  
  42.             {  
  43.                 conn.Open();  
  44.             }  
  45.   
  46.             return conn;  
  47.         }  
  48.   
  49.   
  50.   
  51.   
  52.         /// 该方法传入一个增删改SQL语句或是存储过程<summary>  
  53.         /// </summary>  
  54.         /// <param name="sql">要执行的增删改SQL语句或是存储过程</param>  
  55.         /// <returns>返回更新的记录数</returns>  
  56.         public int ExecuteNonQuery(string cmdText,CommandType ct)  
  57.         {  
  58.             //不定义的时候返回的初值是零  
  59.             int res;  
  60.             try  
  61.             {  
  62.               
  63.                 cmd = new SqlCommand(cmdText, GetConn());  
  64.                 cmd.CommandType = ct;  
  65.                 res = cmd.ExecuteNonQuery();  
  66.             }  
  67.             catch (Exception ex)  
  68.             {  
  69.   
  70.                 throw ex;  
  71.             }  
  72.             finally  
  73.             {  
  74.                 if (conn.State == ConnectionState.Open)  
  75.                 {  
  76.                     conn.Close();  
  77.                 }  
  78.   
  79.             }  
  80.   
  81.             return res;  
  82.         }  
  83.   
  84.   
  85.   
  86.   
  87.         /// 执行带参数的增删改语句或是存储过程<summary>  
  88.         /// 执行带参数的增删改语句或是存储过程  
  89.         /// </summary>  
  90.         /// <param name="sql">带参数的SQL语句或是存储过程</param>  
  91.         /// <param name="paras">参数集合</param>  
  92.         /// <returns></returns>  
  93.   
  94.         public int ExecuteNonQuery(string cmdText, SqlParameter[] paras,CommandType ct)  
  95.         {  
  96.             int res;  
  97.             using (cmd = new SqlCommand(cmdText, GetConn()))  
  98.             {  
  99.                 cmd.CommandType = ct;  
  100.                 cmd.Parameters.AddRange(paras);  
  101.                   
  102.                 res = cmd.ExecuteNonQuery();  
  103.             }  
  104.   
  105.   
  106.             return res;  
  107.   
  108.         }  
  109.   
  110.   
  111.   
  112.   
  113.   
  114.         /// 该方法传入一个查询SQL语句或是存储过程<summary>  
  115.         /// 该方法传入一个查询SQL语句或是存储过程  
  116.         /// </summary>  
  117.         /// <param name="cmtText">SQL查询语句或存储过程</param>  
  118.         /// <returns></returns>  
  119.         public DataTable ExecuteQuery(string cmtText,CommandType ct)  
  120.         {  
  121.             DataTable dt = new DataTable();  
  122.             cmd = new SqlCommand(cmtText, GetConn());  
  123.             cmd.CommandType = ct;  
  124.             //关系sdr的同是将会关闭conn  
  125.             using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
  126.             {  
  127.                 dt.Load(sdr);  
  128.             }  
  129.             return dt;  
  130.         }  
  131.   
  132.   
  133.         /// 执行带参数的SQL语句或是存储过程<summary>  
  134.         /// 执行带参数的SQL语句或是存储过程  
  135.         /// </summary>  
  136.         /// <param name="cmdText">SQL语句或是存储过程</param>  
  137.         /// <param name="paras"></param>  
  138.         /// <returns></returns>  
  139.         public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras,CommandType ct)  
  140.         {  
  141.             DataTable dt = new DataTable();  
  142.             cmd = new SqlCommand(cmdText, GetConn());  
  143.             cmd.CommandType = ct;  
  144.             cmd.Parameters.AddRange(paras);  
  145.             //关系sdr的同是将会关闭conn  
  146.             using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
  147.             {  
  148.                 dt.Load(sdr);  
  149.             }  
  150.             return dt;  
  151.         }  
  152.   
  153.      
  154.     }  
  155.         
  156.          
  157. }  
  158.     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值