zoukankan      html  css  js  c++  java
  • SqlHelper助手

         正在机房重构中,自己一直在摸索,刚开始听说SqlHelper只是感觉很高深,都不知道是用来做什么用的,只是看见别人的博客上写的可以用来帮助连接数据库。但自己没有什么特别的感觉,就认真的去查阅资料来具体了解SQLHelper类。那么SQLHelper究竟是什么呢?我们一起来探索。。。

         是什么?

             通过一组静态方法来封装数据访问功能,简单来说就是可以直接访问数据库,提供增删改查的功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。

         有哪些方法?

        ExecuteNonQuery:此方法用于执行不返回任何行或值的命令。常用于执行数据库增、删、改,但也可用于返回存储过程的输出参数。 
        ExecuteReader:此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。 
        ExecuteDataset:此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。用于对数据集的插入记录、 更新数据。
        ExecuteScalar:此方法返回一个值。该值得类型为Object类型。

                ExecuteXmlReader:此方法返回XML格式的数据,主要是通过该方法访问数据库将数据转成XML格式。

        这些是我们常用的方法,另外应该还有很多需要等待我们去实践。。

      怎么应用?

       下面我就以机房为例来说明一下如何使用SqlHelper助手:

    Public Class sqlHelper
        '定义并连接数据库
        Dim strCon As String = ConfigurationManager.AppSettings("ConnString")
        '定义一个数据库连接对象
        Dim conn As SqlConnection = New SqlConnection(strCon)
        '定义一个命令对象
        Dim cmd As New SqlCommand
        Public Function ExecuteNoQuery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Integer
            
    <span style="white-space:pre">	</span>'对cmd的属性进行赋值
            cmd.Parameters.AddRange(sqlParams)  '传入参数
            cmd.CommandType = cmdType
            cmd.Connection = conn    '设置连接
            cmd.CommandText = cmdText
            Dim result As Integer
            
            Try
                conn.Open()
                result = cmd.ExecuteNonQuery()  '执行增删改操作并返回受影响的行数
                cmd.Parameters.Clear()  '清除参数
    
            Catch ex As Exception
                MsgBox(ex.Message, , "数据库操作")
            Finally
                Call CloseConn(conn)  '关闭连接
                Call CloseCmd(cmd)  '关闭命令
            End Try
            Return result
        End Function 
        Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable
    
            Dim sqlAdapter As New SqlDataAdapter  '声明适配器
            Dim dt As New DataTable   '声明数据表
            Dim ds As New DataSet   '声明数据缓存
    
            cmd.CommandType = cmdType
            cmd.Connection = conn
            cmd.CommandText = cmdText   '设置查询语句
    
            '将传入的值分别赋给cmd的属性
            cmd.Parameters.AddRange(sqlParams)  '将参数传入
            sqlAdapter = New SqlDataAdapter(cmd)  '实例化适配器
    
            '执行操作
            Try
                sqlAdapter.Fill(ds)  '用适配器对ds进行填充
                dt = ds.Tables(0)  '返回数据集的第一个表
                cmd.Parameters.Clear()  '清除参数
            Catch ex As Exception
                MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
            Finally
                Call CloseConn(conn)
                Call CloseCmd(cmd)
            End Try
            Return dt
        End Function 
        Private Sub CloseConn(ByVal conn As SqlConnection)
            '如果没有关闭,则关闭连接
            If (conn.State <> ConnectionState.Closed) Then
                conn.Close()
                conn = Nothing
            End If
        End Sub
        Private Sub CloseCmd(ByVal cmd As SqlCommand)
            '如果没有关闭命令,则关闭命令
            If Not IsNothing(cmd) Then
                cmd.Dispose()  '处理
                cmd = Nothing
            End If
        End Sub
    End Class
        这只是初步的实现,现在最起码能够达到代码的复用,减少了多次重复写连接数据库的代码。接下来通过机房会有更深的研究,相信到时会有更深的理解,也就能真正体现SQLHelper的作用。


  • 相关阅读:
    用户访问集群架构的流程
    HTTP请求方法 HTTP的响应方法
    数据报文
    什么是HTTP? 什么是超文本? 什么是URL?
    HTTP协议原理
    C语言之数据类型③——字符与字符串
    C语言之数据类型②——浮点类型
    C语言之数据类型①——整数类型
    uniapp自定义小程序左上角的图标并且添加自定义事件
    在uniapp中使用iconfont
  • 原文地址:https://www.cnblogs.com/zsswpb/p/5771663.html
Copyright © 2011-2022 走看看