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.     
阅读更多
文章标签: SqlHelper 数据库
个人分类: SqlHelper
想对作者说点什么? 我来说一句

Spring 3.0就这么简单,完整扫描版

2014年02月06日 189.44MB 下载

Spring 3.0就这么简单 pdf

2014年05月08日 59.13MB 下载

spring 3.0 就这么简单

2014年05月08日 59.13MB 下载

管理就这么简单

2008年04月13日 709KB 下载

没有更多推荐了,返回首页

不良信息举报

SqlHelper就这么简单

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭