SQLHelper之簡單方法封裝

在做機房收費系統中SQLHelper類的封裝是必不可少的。我們先來看看SQLHelper到底是個什麼東西 ?


     SqlHelper是一個基於·NET Framework的數據庫操作組件。組件中包含數據庫操作方法。SqlHelper用於簡化你重複的去寫那些數據庫連接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封裝過後通常是只需要給方法傳入一些參數如數據庫連接字符串,SQL參數等,就可以訪問數據庫了,很方便。SqlHelpe組件中包含數據庫操作方法,SqlHelper有很多版本,主要以微軟一開始發佈的SqlHelper類,後面包含進了Enterprise Library開源包中了。還有一個主要版本是dbhelper.org開源的sqlhelper組件,優點是簡潔,高性能,不僅僅支持sqlserver,同時支持sqlserver、oracle、access、Mysql數據庫,也是一個開源項目,提供免費下載。


下面是SQLHelper的一些簡單方法封裝。

代碼:

Imports System.Data.SqlClient
''' <summary>
'''對數據庫的查詢,更新,刪除數據操作
''' </summary>
''' <remarks>2013.12.20 by Gelupu</remarks>
Public Class SqlHelper

    Dim strCon As String
    Dim sqlCon As SqlConnection
    Dim sqlCmd As SqlCommand
    Dim dt As DataTable
    Dim sqlApt As SqlDataAdapter

    ''' <summary>
    ''' 構造方法,初始化sqlCon
    ''' </summary>
    ''' <remarks></remarks>
    Sub New()
        '設置連接字符串
        strCon = "Server=Gelupu-PC;Database=ChargeSys;User ID=sa;Password=123456"
        '初始化sqlCon
        sqlCon = New SqlConnection(strCon)
    End Sub

    ''' <summary>
    ''' 打開數據庫連接
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub OpenConnection()
        sqlCon.Open()
    End Sub

    ''' <summary>
    ''' 關閉數據庫連接
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub CloseConnection()
        sqlCon.Close()
        sqlCon = Nothing
    End Sub
    ''' <summary>
    ''' 執行不帶參數的查詢命令,返回數據表
    ''' </summary>
    ''' <param name="cmdText">SQL語句字符串</param>
    ''' <param name="cmdType">命令類型</param>
    ''' <returns>數據表</returns>
    ''' <remarks>2013.12.15 by Gelupu</remarks>

    Public Function ExecuteQueryNoParameters(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable

        '通過sqlCon數據庫連接對象的CreatCommand方法創建一SqlCommand實例對象
        sqlCmd = sqlCon.CreateCommand()
        '給SqlCommand對象CommandText屬性賦值
        sqlCmd.CommandText = cmdText
        '給SqlCommand對象CommandType屬性賦值
        sqlCmd.CommandType = cmdType
        '實例化DataTable
        dt = New DataTable
        '實例化SqlDataAdapter
        sqlApt = New SqlDataAdapter(sqlCmd)


        Try

            '打開數據庫連接
            Me.OpenConnection()
            '執行命令,填充DataTable
            sqlApt.Fill(dt)
            '返回DataTable
            Return dt

        Catch ex As Exception
            '返回錯誤信息
            Return dt

        Finally
            '釋放數據庫操作對象
            If Not IsNothing(sqlCmd) Then
                sqlCmd.Dispose()
                sqlCmd = Nothing
            End If

            '關閉數據庫連接
            If Not IsNothing(sqlCon) Then
                Me.CloseConnection()
            End If


        End Try


    End Function
    ''' <summary>
    ''' 執行帶參數的查詢命令,返回數據表
    ''' </summary>
    ''' <param name="cmdText">SQL查詢語句字符串</param>
    ''' <param name="cmdType">命令類型</param>
    ''' <param name="Para">命令參數數組</param>
    ''' <returns>數據表</returns>
    ''' <remarks>2013/12/15 by Gelupu</remarks>
    ''' 
    Public Function ExecuteQueryWithParameters(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal para() As SqlParameter) As DataTable

        '通過sqlCon數據庫連接對象的CreatCommand方法創建一SqlCommand實例對象
        sqlCmd = sqlCon.CreateCommand()
        '給SqlCommand對象CommandText屬性賦值
        sqlCmd.CommandText = cmdText
        '給SqlCommand對象CommandType屬性賦值
        sqlCmd.CommandType = cmdType
        '實例化DataTable
        dt = New DataTable
        '實例化SqlDataAdapter
        sqlApt = New SqlDataAdapter(sqlCmd)
        sqlCmd.Parameters.AddRange(para)

        Try

            '打開數據庫連接
            Me.OpenConnection()
            '執行命令,填充DataTable
            sqlApt.Fill(dt)
            '返回DataTable
            Return dt

        Catch ex As Exception
            '返回錯誤信息
            Return dt

        Finally
            '釋放數據庫操作對象
            If Not IsNothing(sqlCmd) Then
                sqlCmd.Dispose()
                sqlCmd = Nothing
            End If

            '關閉數據庫連接
            If Not IsNothing(sqlCon) Then
                Me.CloseConnection()
            End If


        End Try

    End Function
    ''' <summary>
    ''' 執行不帶參數的增加,刪除,修改命令,返回布爾值
    ''' </summary>
    ''' <param name="cmdText">SQL語句字符串</param>
    ''' <param name="cmdType">命令類型</param>
    ''' <returns>布爾值,標示命令是否執行成功</returns>
    ''' <remarks>2013.12.15 by Gelupu</remarks>
    Public Function ExecuteNotQueryNoParameters(ByVal cmdText As String, ByVal cmdType As CommandType) As Boolean

        '傳入SQL語句和連接字符串,初始化SqlComm
        sqlCmd = New SqlCommand(cmdText, sqlCon)
        sqlCmd.CommandType = cmdType


        Try
            sqlCon.Open()
            sqlCmd.ExecuteNonQuery()
            Return True

        Catch ex As Exception
            Return False

        Finally
            '釋放數據庫操作對象資源
            If Not IsNothing(sqlCmd) Then
                sqlCmd.Dispose()
                sqlCmd = Nothing
            End If

            '關閉數據庫連接
            If Not IsNothing(sqlCon) Then
                Me.CloseConnection()
            End If
        End Try


    End Function

    ''' <summary>
    ''' 執行帶參數的數據庫數據增加,刪除,修改命令,返回布爾值
    ''' </summary>
    ''' <param name="cmdText">SQL語句字符串</param>
    ''' <param name="cmdType">命令類型</param>
    ''' <param name="para">命令參數數組</param>
    ''' <returns>布爾值,標示命令是否執行成功</returns>
    ''' <remarks>2013.12.15 by Gelupu</remarks>
    Public Function ExecuteNotQueryWithParameters(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal para() As SqlParameter) As Boolean

        '傳入SQL語句和連接字符串,初始化SqlComm
        sqlCmd = New SqlCommand(cmdText, sqlCon)
        '設置命令類型
        sqlCmd.CommandType = cmdType
        '給命令參數賦值
        sqlCmd.Parameters.AddRange(para)

        Try
            '打開數據庫連接
            sqlCon.Open()
            '執行命令,返回結果
            'Return  sqlCmd.ExecuteNonQuery()>0
            sqlCmd.ExecuteNonQuery()
            Return True

        Catch ex As Exception
            '返回失敗
            Return False

        Finally
            '釋放數據庫操作對象資源
            If Not IsNothing(sqlCmd) Then
                sqlCmd.Dispose()
                sqlCmd = Nothing
            End If

            '關閉數據庫連接
            If Not IsNothing(sqlCon) Then
                Me.CloseConnection()
            End If
        End Try


    End Function
    ''' <summary>
    ''' 設置參數命令
    ''' </summary>
    ''' <param name="paramName">命令參數名稱</param>
    ''' <param name="sqlType">命令參數的數據類型</param>
    ''' <param name="strValue">命令參數值</param>
    ''' <returns>命令參數數組</returns>
    ''' <remarks>2013.12.15 by Gelupu</remarks>
    Public Function AddSqlParameter(ByVal paramName As String, ByVal sqlType As SqlDbType, ByVal strValue As String) As SqlParameter
        '初始化命令參數
        Dim sqlPara As New SqlParameter(paramName, sqlType)
        '設置命令參數的值
        sqlPara.Value = strValue

        '返回命令參數
        Return sqlPara

    End Function

End Class


發佈了48 篇原創文章 · 獲贊 10 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章