SqlHelper就这么简单
一、SqlHelper作用:
SqlHelper用于简化你对数据库重复的操作包括:数据库的连接,数据库的增删改查。
也就是将原本复杂的事情简单化,说白了也就是一个类里面封装了一些方法,而这些方法大部分都是和数据库有关的。
二、SqlHelper的来源:
来源一:目前SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类当然我也没有真正看过她的里面到底有什么。
来源二:那就是我们自己用的,自己来写这个类。
三、简单介绍这个类里面有的方法:
方法1:对于SqlHelper的一个构造方法:
目的:初始化数据库的连接字符串和Sqlconnection
方法2:获取连接的一个方法
方法3:执行SQL语句增删改或是存储过程
方法4:执行SQL查询语句
总的来说也就是这么多的东西,但是一还要考虑一些其他的东西,比如我上篇文章说的SQL注入的问题这就需要对方法3和方法4进行重构也就是带参数的方法3和方法4.
好了废话不多说了。
四、实践
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//对数据库进行操作引入命名空间
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace DAL
{public class SQLhelper{/// 变量定义/// private SqlConnection conn = null;private SqlCommand cmd = null;private SqlDataReader sdr = null;/// SQLhelper connStr 字符串的连接/// public SQLhelper(){string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;conn = new SqlConnection(connStr);}/// 获取conn/// /// 为什么要这样写有什么意义呢? private SqlConnection GetConn(){if (conn.State == ConnectionState.Closed){conn.Open();}return conn;}/// 该方法传入一个增删改SQL语句或是存储过程/// /// 要执行的增删改SQL语句或是存储过程/// 返回更新的记录数 public int ExecuteNonQuery(string cmdText,CommandType ct){//不定义的时候返回的初值是零int res;try{cmd = new SqlCommand(cmdText, GetConn());cmd.CommandType = ct;res = cmd.ExecuteNonQuery();}catch (Exception ex){throw ex;}finally{if (conn.State == ConnectionState.Open){conn.Close();}}return res;}/// 执行带参数的增删改语句或是存储过程/// 执行带参数的增删改语句或是存储过程/// /// 带参数的SQL语句或是存储过程/// 参数集合/// public int ExecuteNonQuery(string cmdText, SqlParameter[] paras,CommandType ct){int res;using (cmd = new SqlCommand(cmdText, GetConn())){cmd.CommandType = ct;cmd.Parameters.AddRange(paras);res = cmd.ExecuteNonQuery();}return res;}/// 该方法传入一个查询SQL语句或是存储过程/// 该方法传入一个查询SQL语句或是存储过程/// /// SQL查询语句或存储过程/// public DataTable ExecuteQuery(string cmtText,CommandType ct){DataTable dt = new DataTable();cmd = new SqlCommand(cmtText, GetConn());cmd.CommandType = ct;//关系sdr的同是将会关闭connusing (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)){dt.Load(sdr);}return dt;}/// 执行带参数的SQL语句或是存储过程/// 执行带参数的SQL语句或是存储过程/// /// SQL语句或是存储过程/// /// public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras,CommandType ct){DataTable dt = new DataTable();cmd = new SqlCommand(cmdText, GetConn());cmd.CommandType = ct;cmd.Parameters.AddRange(paras);//关系sdr的同是将会关闭connusing (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)){dt.Load(sdr);}return dt;}}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
