SqlHelper就这么简单

转载 2016年08月28日 19:31:31

一、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.     

《Wireshark 网络分析就这么简单》学习笔记

第一章部分内容一、抓包 只抓包头。一般能抓到的每个包(称为“帧”更准确)的最大长度为1514字节,启用了Jumbo Frame(巨型帧)之后可达9000字节以上,而大多数时候我们只需要IP头或者TCP...
  • wylewylie
  • wylewylie
  • 2016年05月16日 23:28
  • 2991

SQLHelper类方法介绍及简单使用

引言做.NET开发的话,想必大家对SQLHelper.cs这个类都不会陌生。很早之前微软就发布了SQLHelper.cs,如果想要了解它的详细信息可以参考我的另一篇博客:http://blog.csd...
  • u013201439
  • u013201439
  • 2016年06月26日 16:55
  • 3531

SqlHelper数据库访问类

参考上一篇:数据库连接配置app.config 写一个通用的数据库访问类。  public class SqlHelper //数据库连接类 { //获取数据库连接字符串...
  • bigpudding24
  • bigpudding24
  • 2015年04月04日 14:02
  • 673

强大的SQLHelper类

在做机房收费系统的时候,曾经使用过Sqlhelper,当时对此内容理解不是很好,参照的是下篇的博客:   vb.net—SQLHelper类的使用   而做过之后,当再次回首往事的时候,发现这个S...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2014年09月20日 13:20
  • 2466

Kafka的简单介绍

一、为什么需要消息系统 1.解耦:   允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2.冗余:   消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数...
  • u012470138
  • u012470138
  • 2017年06月28日 14:13
  • 337

利用SqlHelper.cs实现Web程序与数据库的连接

转自:http://blog.csdn.net/mayanly/article/details/6049999 利用SqlHelper.cs实现Web程序与数据库的连接    ...
  • chelen_jak
  • chelen_jak
  • 2015年04月02日 08:36
  • 1829

SqlHelper类的使用

机房重构进行了一小阶段,刚开始敲代码的时候,实现每一个功能都要在D层类中写一次数据据库连接(SqlConnection),SqlCommand,SqlDataReader语句,感到相当地麻烦。遇到这个...
  • u013035924
  • u013035924
  • 2015年02月13日 20:53
  • 949

wireshark网络分析笔记

本文是阅读《wireshark网络分析就这么简单》和《wireshark网络分析的艺术》做的一些笔记。技巧篇1、如只要分析ip头或tcp头,可减少每个抓包数据的大小,通过设置limit each pa...
  • wustzjf
  • wustzjf
  • 2016年05月30日 16:39
  • 4321

分享一个常用的sqlHelper类

using System; using System.Collections.Generic; using System.Text; using System.Configuration; u...
  • acaoguangke
  • acaoguangke
  • 2016年11月08日 18:17
  • 2187

SQLHelper--四种方法完整版

//--------------------------------------1  配置文件----------------------------------------------------...
  • cfsht
  • cfsht
  • 2016年11月06日 20:14
  • 385
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SqlHelper就这么简单
举报原因:
原因补充:

(最多只允许输入30个字)