机房重构(1)——SqlHelper

机房重构(1)——SqlHelper,第1张

概述      在机房重构过程中,我们会发现,每个功能的实现都会涉及到数据库的链接访问,代码重复率非常高,耗时耗力,还会使系统出现代码冗余,正所谓费力不讨好。于是,把这些重复的代码抽象成一个类,有需求直接调用就可以了。这时候,SqlHelper就登场了。       SqlHelper是一个基于·NET Framework的数据库 *** 作组件。组件中包含数据库 *** 作方法。SqlHelper用于简化你重复的去

在机房重构过程中,我们会发现,每个功能的实现都会涉及到数据库的链接访问,代码重复率非常高,耗时耗力,还会使系统出现代码冗余,正所谓费力不讨好。于是,把这些重复的代码抽象成一个类,有需求直接调用就可以了。这时候,sqlHelper就登场了。


sqlHelper是一个基于·NET Framework的数据库 *** 作组件。组件中包含数据库 *** 作方法。sqlHelper用于简化你重复的去写那些数据库连接(sqlConnection),sqlCommand,sqlDataReader等等。sqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,sql参数等,就可以访问数据库了。

sqlHelper中有两种方法,对数据库的查询和增删改,每种方法都有有参和无参两大类:

以下是sqlHelper的代码:

imports System.Dataimports System.Data.sqlClIEntimports System.Configuration      '添加对配置文件的引用,在管理器中相应的类库下同时添加引用''' <summary>''' sqlhelper类封装简化对数据库 *** 作代码''' </summary>''' <remarks></remarks>Public Class sqlHelper    '定义变量    '获得数据库的连接字符串    Private Readonly strConnection As String = ConfigurationManager.AppSettings("ConnStr")    '设置连接    Dim conn As sqlConnection = New sqlConnection(strConnection)    '定义cmd命令    Dim cmd As New sqlCommand    ''' <summary>    ''' 执行增删改三个 *** 作(有参),返回值为Boolean类型,确认是否执行成功    ''' </summary>    ''' <param name=" cmdText ">需要执行的命令</param >    ''' <param name=" cmdType ">所执行命令的类型(SQL语句、表或存储过程)</param >    ''' <param name="paras" >参数数组,无法确认有多少参数</param >    ''' <returns></returns >    ''' <remarks></remarks>    Public Function ExecAddDelUpdate(ByVal cmdText As String,ByVal cmdType As CommandType,ByVal paras As sqlParameter()) As Integer        '将传入的值分别为cmd的属性赋值        cmd.Parameters.AddRange(paras)      '传入参数        cmd.CommandType = cmdType           '设置一个值来解释cmdText        cmd.Connection = conn               '设置连接,全局变量        cmd.CommandText = cmdText           '设置查询语句        '执行 *** 作        Try            conn.open()                      '打开连接            Return cmd.ExecuteNonquery()     '执行增删改 *** 作            cmd.Parameters.Clear()           '清除参数        Catch ex As Exception                '如有异常,返回值为0            Return 0        Finally            Call CloseConn(conn)             '关闭连接                    Call CloseCmd(cmd)               '关闭命令        End Try    End Function    ''' <summary>    ''' 执行增删改三个 *** 作(无参)    ''' </summary>    ''' <param name=" cmdText ">需要执行语句,一般是SQL语句,也有存储过程</param >    ''' <param name=" cmdType ">所执行命令的类型(SQL语句、表或存储过程)</param >    ''' <returns>Integer,受影响的行数</returns >    ''' <remarks></remarks>    Public Function ExecAddDelUpdateNo(ByVal cmdText As String,ByVal cmdType As CommandType) As Integer        '为要执行的cmd赋值        cmd.CommandText = cmdText              '设置SQL语句        cmd.CommandType = cmdType              '设置一个值来解释SQL语句        cmd.Connection = conn                  '设置连接        '执行 *** 作        Try            conn.open()                        '先是打开连接            Return cmd.ExecuteNonquery         '执行增删改 *** 作        Catch ex As Exception            Return 0        Finally            Call CloseConn(conn)            Call CloseCmd(cmd)        End Try    End Function    ''' <summary>    ''' 执行查询 *** 作(有参)    ''' </summary>    ''' <param name=" cmdText ">需要执行命令</param >    ''' <param name=" cmdType ">所执行命令的类型</param >    ''' <param name="paras" >传入的参数</param >    ''' <returns></returns >    ''' <remarks></remarks>    Public Function ExecSelect(ByVal cmdText As String,ByVal paras As sqlParameter()) As Datatable        Dim sqlAdapter As sqlDataAdapter        Dim dt As New Datatable        Dim ds As New DataSet        cmd.Parameters.AddRange(paras)        cmd.CommandText = cmdText        cmd.CommandType = cmdType        cmd.Connection = conn        sqlAdapter = New sqlDataAdapter(cmd)    '实例化adapter        Try            sqlAdapter.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    ''' <summary>    ''' 执行查询 *** 作(无参)    ''' </summary>    ''' <param name=" cmdText ">需要执行命令</param >    ''' <param name=" cmdType ">所执行命令的类型</param >    ''' <returns>datatable,查询到的表格</returns >    ''' <remarks></remarks>    Public Function ExecSelectNo(ByVal cmdText As String,ByVal cmdType As CommandType) As Datatable        Dim sqlAdapter As sqlDataAdapter        Dim ds As New DataSet        cmd.CommandText = cmdText        cmd.CommandType = cmdType        cmd.Connection = conn        sqlAdapter = New sqlDataAdapter(cmd)    '实例化adapter        Try            sqlAdapter.Fill(ds)                 '用adapter将dataset填充            Return ds.tables(0)                 'datatable为dataset的第一个表        Catch ex As Exception            Return nothing        Finally            Call CloseConn(conn)            Call CloseCmd(cmd)                  '关闭cmd        End Try    End Function    ''' <summary>    ''' 关闭连接    ''' </summary>    ''' <param name="conn">需要关闭的连接</param>    ''' <remarks></remarks>    Public Sub CloseConn(ByVal conn As sqlConnection)        If (conn.State <> ConnectionState.Closed) Then         '如果没有关闭            conn.Close()                                       '关闭连接            conn = nothing        End If    End Sub    ''' <summary>    ''' 关闭命令    ''' </summary>    ''' <param name="cmd">需要关闭的命令</param>    ''' <remarks></remarks>    Public Sub CloseCmd(ByVal cmd As sqlCommand)        If Not Isnothing(cmd) Then                   '如果命令存在            cmd.dispose()            cmd = nothing        End If    End SubEnd Class

快使用小助手为我们的代码瘦瘦身,为系统减减负吧!

总结

以上是内存溢出为你收集整理的机房重构(1)——SqlHelper全部内容,希望文章能够帮你解决机房重构(1)——SqlHelper所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存