机房收费系统个人重构版敲完登陆系统之后往后敲了几个窗口,对于那些数据库连接SqlConnenction、SqlConnamd等常常敲反复的代码,之前也看过其它人的博客,这个东西不用还真不行。

SqlHelper是什么?

SqlHelper是一个基于·NETFramework的数据库操作组件。组件中包括数据库操作方法。

SqlHelper的作用?

SqlHelper用于简化你反复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper封装过后一般是仅仅须要给方法传入一些參数如数据库连接字符串,SQL參数等。就能够訪问数据库了。

机房个人重构Sqlhelper代码:

’****************************************************
’文件名称:SqlHelper
’命名空间:DAL
'内容:使用SqlHelper,提供较高的数据訪问性
’功能:
’文件关系:
’作者:赵亚盟
’小组:XXX
’生成日期:2014-07-17 14:44:38
’版本号号:V1.0.0.0
’改动日志:
’版本号说明:
'****************************************************
Imports System.Data
Imports System.Data.SqlClient 'SQLServer的连接对象
Imports System.Configuration '配置文件的引用 (管理器中也要引用)
'------------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class SqlHelper Dim Connstr As String = ConfigurationManager.AppSettings("Connstr") '配置文件
Dim conn As New SqlConnection '定义连接
Dim cmd As New SqlCommand '定义命令
Public Sub New()
conn = New SqlConnection(Connstr)
End Sub
#Region "有參数的查询操作" ''' <summary>
'''运行查询操作。有參数返回datatable类型
''' </summary>
''' <param name="cmdText">须要运行语句。能够是Sql语句也能够是存储过程</param>
''' <param name="cmdType">推断Sql语句的类型,一般都不是存储过程</param>
''' <param name="paras">參数数组</param>
''' <returns>返回表</returns>
''' <remarks></remarks>
Public Function GetDataTable(cmdText As String, cmdType As String, paras As SqlParameter()) As DataTable Dim adapter As New SqlDataAdapter
Dim ds As New DataSet '定义一个适配器对象
Dim dt As New DataTable cmd.CommandText = cmdText '设置查询语句
cmd.CommandType = cmdType
cmd.Connection = conn '设置连接,全局变量
cmd.Parameters.AddRange(paras) '传入參数
adapter = New SqlDataAdapter(cmd) '实例化Adapter Try
adapter.Fill(ds) '用Adapter将Dataset填充
dt = ds.Tables(0) 'datatable为DataSet的第一个表
cmd.Parameters.Clear() '清除參数
Catch ex As Exception
MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
Finally
Call CloseConn(conn)
Call CloseCmd(cmd) '销毁cmd
End Try
Return dt '返回受影响的行数 End Function #End Region '------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region "无參数的查询操作"
''' <summary>
'''运行查询操作。无參数返回datatable类型
''' </summary>
''' <param name="cmdText">须要运行语句,能够是Sql语句也能够是存储过程</param>
''' <param name="cmdType">推断Sql语句的类型,一般都不是存储过程</param>
''' <returns>返回表</returns>
''' <remarks></remarks>
Public Function GetDataTable(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable Dim adapter As New SqlDataAdapter
Dim ds As New DataSet '定义一个适配器对象
Dim dt As New DataTable cmd.CommandText = cmdText '将sql语句传给cmdsql
cmd.CommandType = cmdType '确定语句类型
cmd.Connection = conn '设置连接,全局变量
adapter = New SqlDataAdapter(cmd) '实例化Adapter Try
adapter.Fill(ds) '用Adapter将Dataset填充
dt = ds.Tables(0) 'datatable为DataSet的第一个表
Catch ex As Exception
MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
Finally
'销毁cmd
Call CloseConn(conn)
Call CloseCmd(cmd)
End Try
Return dt '返回受影响的行数 End Function #End Region
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region "有參数的增删改"
''' <summary>
''' ///运行有參数的增删改操作,有參数则返回Boolean类型,确认是否运行成功
''' </summary>
''' <param name="cmdText">须要运行语句。能够是Sql语句也能够是存储过程</param>
''' <param name="cmdType">推断Sql语句的类型。一般都不是存储过程</param>
''' <param name="paras">參数数组</param>
''' <returns>返回Boolean类型。成功返回true,否则返回false</returns>
''' <remarks></remarks>
Public Function ExecuteNoQuery(cmdText As String, cmdType As CommandType, paras As SqlParameter()) As Boolean cmd.Parameters.AddRange(paras) '传入參数
cmd.CommandType = cmdType '确定语句类型
cmd.CommandText = cmdText '设置查询语句
cmd.Connection = conn '设置连接。全局变量 Try
conn.Open() '打开连接
Return cmd.ExecuteNonQuery() '运行增删改操作
cmd.Parameters.Clear() '清除參数
Catch ex As Exception
Return False '假设出现错误,则返回false
Finally
'关闭数据库
Call CloseConn(conn)
Call CloseCmd(cmd)
End Try End Function #End Region
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region "无參数的增删改"
''' <summary>
''' ///运行增删改操作,无參返回Boolean型。确认是否运行成功
''' </summary>
''' <param name="cmdText">须要运行语句。能够是Sql语句也能够是存储过程</param>
''' <param name="cmdType">推断Sql语句的类型,一般都不是存储过程</param>
''' <returns>返回Boolean类型,成功返回true,否则返回false</returns>
''' <remarks></remarks>
Public Function ExecuteNoQuery(cmdText As String, cmdType As CommandType) As Boolean cmd.CommandType = cmdType '推断类型
cmd.CommandText = cmdText '设置查询语句
cmd.Connection = conn '设置连接 Try
conn.Open() '打开连接
Return cmd.ExecuteNonQuery() '运行增删改操作
Catch ex As Exception
Return False '假设出现错误,则返回false
Finally
'关闭数据库
Call CloseConn(conn)
Call CloseCmd(cmd)
End Try End Function #End Region Public Sub CloseCmd(ByVal cmd As SqlCommand)
'推断cmd命令是否存在。假设cmd命令不存在就销毁
If Not IsNothing(cmd) Then
cmd.Dispose()
cmd = Nothing
End If
End Sub Public Sub CloseConn(ByVal conn As SqlConnection)
'推断数据库连接对象状态是否是断开状态,,假设不是就断开
If conn.State <> ConnectionState.Closed Then
conn.Close() '关闭连接
End If
End Sub
End Class

在 SqlHelper 类中实现的方法包含:

ExecuteNonQuery。用于运行(有參数或无參数的)不返回不论什么行或值的命令。这些命令通经常使用于运行数据库(增\删\改)更新,但也可用于返回存储过程的输出參数。

ExecuteReader。此方法用于返回 SqlDataReader 对象,该对象包括由某一命令返回的结果集。

ExecuteDataset。此方法返回DataSet 对象,该对象包括由某一命令返回的结果集。

注意:在使用SqlHelper方法调用数据库存储过程时。须要获取存储过程的返回值。使用带有SSqlParameter[]參数的方法,Object[]參数的方法无法获取存储过程的返回值。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

迟来SQLHelper的更多相关文章

  1. 不该活着的SqlHelper和DBHelper

    前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...

  2. SqlHelper中IN集合场景下的参数处理

    我手头有个古老的项目,持久层用的是古老的ADO.net.前两天去昆明旅游,其中的一个景点是云南民族村,通过导游介绍知道了一个古老的民族——基诺族,“基”在这个族内代表舅舅,“基诺”意为“跟在舅舅后边” ...

  3. 支持多返回值存储过程的SqlHelper

    public readonly string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionS ...

  4. 微软版的SqlHelper.cs类

    一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...

  5. 万能的SqlHelper,麻麻再也不用担心用什么数据库了

    以前只用一种数据库,倒也无所谓,但是再数据库切换的时候,发现代码差不多呀. 最初,两种数据库,大不了写两个SqlHelper,但是多了也就发现代码重用率太低了吧. 因此,下面的SqlHelper诞生了 ...

  6. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session

    一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...

  7. sqlHelper做增删改查

    1.把数据库里面的数据显示出来 sqlHelper怎么用:[网上可以下载,需要可以找楼主要] 1.拷贝到项目,修改它的命名空间等于当前项目名称 2.数据库的连接信息,用户名,密码,登录方式等 < ...

  8. SqlHelper类

    using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...

  9. .net C# SqlHelper for Oracle

    适用于Oracle的sqlhelper 需要使用ODP.Net,引用Oracle.DataAccess.dll 推荐安装ODAC 代码如下: using System; using System.Co ...

随机推荐

  1. JS,Jquery - 三元运算符

    在javascript中使用三元运算符. 要使用 " [] " ,对运算式进行包裹.

  2. [转]组合数取模 Lucas定理

    对于C(n, m) mod p.这里的n,m,p(p为素数)都很大的情况.就不能再用C(n, m) = C(n - 1,m) + C(n - 1, m - 1)的公式递推了. 这里用到Lusac定理 ...

  3. XHTML 基础(含部分css)

    基于http://www.ycku.com/xhtml/ 的视频教程的一些笔记 关于xhtml的解释 引用百度百科 可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTML)类似,不过 ...

  4. FileDescriptor

    FileDescriptor 在java中的java.io包下面 public final class FileDescriptor { ... } 官方的解释: 文件描述符类的实例用作与基础机器有关 ...

  5. Chapter 3.单一职责原则

    单一职责原则:就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力,就等于把这些职责耦合在一起, ...

  6. MAC X OS 自定义分辨率

    1 vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist 2 3 将该文件修改成如下内容: 4 5 <key>G ...

  7. Java网络蜘蛛/网络爬虫 Spiderman

    Spiderman - 又一个Java网络蜘蛛/爬虫 Spiderman 是一个基于微内核+插件式架构的网络蜘蛛,它的目标是通过简单的方法就能将复杂的目标网页信息抓取并解析为自己所需要的业务数据. 主 ...

  8. iOS 本地化应用程序(NSLocalizedString)

    App本地化的需要不用讲大家也都明白,本文将介绍一种简单的方法来实现字符串的本地化. 在不考虑本地化的情况下,我们如果在代码中给一个Button定义title,一般会这样写: btn.titleLab ...

  9. (csdn高校俱乐部编程挑战)2的补码

    题目详情 在计算机中,整数是以2的补码的形式给出的. 给出整数A和B,如果计算机是32位机.求从A到B之间的全部二进制数中,一共用了多少个1. 输入格式: 多组数据,每组数据一行,由两个整数A,B, ...

  10. Python数据结构之二叉树

    本来打算一个学期分别用C++.Python.Java实现数据结构,看来要提前了 这个是Python版本,我写的数据结构尽量保持灵活性,本文bt1是一般的插入法建立二叉树结构,bt2就是可以任意输入,至 ...