姗姗来迟的SQLHelper


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

 

    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 SqlHelperDim 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 "有参数的查询操作"''' '''执行查询操作,有参数返回datatable类型''' ''' 需要执行语句,可以是Sql语句也可以是存储过程''' 判断Sql语句的类型,一般都不是存储过程''' 参数数组''' 返回表''' Public Function GetDataTable(cmdText As String, cmdType As String, paras As SqlParameter()) As DataTableDim adapter As New SqlDataAdapterDim ds As New DataSet              '定义一个适配器对象Dim dt As New DataTablecmd.CommandText = cmdText          '设置查询语句cmd.CommandType = cmdTypecmd.Connection = conn              '设置连接,全局变量cmd.Parameters.AddRange(paras)     '传入参数adapter = New SqlDataAdapter(cmd)  '实例化AdapterTryadapter.Fill(ds)               '用Adapter将Dataset填充dt = ds.Tables(0)              'datatable为DataSet的第一个表cmd.Parameters.Clear()         '清除参数Catch ex As ExceptionMsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")FinallyCall CloseConn(conn)Call CloseCmd(cmd)             '销毁cmdEnd TryReturn dt                          '返回受影响的行数End Function#End Region'------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region "无参数的查询操作"''' '''执行查询操作,无参数返回datatable类型''' ''' 需要执行语句,可以是Sql语句也可以是存储过程''' 判断Sql语句的类型,一般都不是存储过程''' 返回表''' Public Function GetDataTable(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTableDim adapter As New SqlDataAdapterDim ds As New DataSet             '定义一个适配器对象Dim dt As New DataTablecmd.CommandText = cmdText         '将sql语句传给cmdsqlcmd.CommandType = cmdType         '确定语句类型cmd.Connection = conn             '设置连接,全局变量adapter = New SqlDataAdapter(cmd) '实例化AdapterTryadapter.Fill(ds)              '用Adapter将Dataset填充dt = ds.Tables(0)             'datatable为DataSet的第一个表Catch ex As ExceptionMsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")Finally'销毁cmdCall CloseConn(conn)Call CloseCmd(cmd)End TryReturn dt                         '返回受影响的行数End Function#End Region'----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region "有参数的增删改"''' ''' ///执行有参数的增删改操作,有参数则返回Boolean类型,确认是否执行成功''' ''' 需要执行语句,可以是Sql语句也可以是存储过程''' 判断Sql语句的类型,一般都不是存储过程''' 参数数组''' 返回Boolean类型,成功返回true,否则返回false''' Public Function ExecuteNoQuery(cmdText As String, cmdType As CommandType, paras As SqlParameter()) As Booleancmd.Parameters.AddRange(paras)   '传入参数cmd.CommandType = cmdType        '确定语句类型cmd.CommandText = cmdText        '设置查询语句cmd.Connection = conn            '设置连接,全局变量Tryconn.Open() '打开连接Return cmd.ExecuteNonQuery() '执行增删改操作cmd.Parameters.Clear()       '清除参数Catch ex As ExceptionReturn False                 '如果出现错误,则返回falseFinally'关闭数据库Call CloseConn(conn)Call CloseCmd(cmd)End TryEnd Function#End Region'------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region "无参数的增删改"''' ''' ///执行增删改操作,无参返回Boolean型,确认是否执行成功''' ''' 需要执行语句,可以是Sql语句也可以是存储过程''' 判断Sql语句的类型,一般都不是存储过程''' 返回Boolean类型,成功返回true,否则返回false''' Public Function ExecuteNoQuery(cmdText As String, cmdType As CommandType) As Booleancmd.CommandType = cmdType             '判断类型cmd.CommandText = cmdText             '设置查询语句cmd.Connection = conn                 '设置连接Tryconn.Open()                       '打开连接Return cmd.ExecuteNonQuery()      '执行增删改操作Catch ex As ExceptionReturn False                      '如果出现错误,则返回falseFinally'关闭数据库Call CloseConn(conn)Call CloseCmd(cmd)End TryEnd Function#End RegionPublic Sub CloseCmd(ByVal cmd As SqlCommand)'判断cmd命令是否存在,如果cmd命令不存在就销毁If Not IsNothing(cmd) Thencmd.Dispose()cmd = NothingEnd IfEnd SubPublic Sub CloseConn(ByVal conn As SqlConnection)'判断数据库连接对象状态是否是断开状态,,如果不是就断开If conn.State <> ConnectionState.Closed Thenconn.Close()                               '关闭连接End IfEnd Sub
End Class

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

      ExecuteNonQuery。用于执行(有参数或无参数的)不返回任何行或值的命令。这些命令通常用于执行数据库(增\删\改)更新,但也可用于返回存储过程的输出参数。

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

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

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






本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部