vb.net中的SqlHelper

一、定義:sql

SqlHelper是一個基於·NET Framework的數據庫操做組件。組件中包含數據庫操做方法。SqlHelper用於簡化你重複的去寫那些數據庫鏈接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封裝事後一般是隻須要給方法傳入一些參數如數據庫鏈接字符串,SQL參數等,就能夠訪問數據庫了,很方便。數據庫


SqlHelper其實就是一個封裝的類,是對鏈接數據的一次抽象。spa

所謂無知者無謂,剛開始用vb.net鏈接SQL數據庫的時候,每次都手動敲一遍,如今有巨人給咱們總結出來SqlHelper類,只要調用這個類,就能夠很容易的鏈接數據庫,並且大幅度減小了出錯的可能。.net


二、方法:
在 SqlHelper 類中實現的方法包括:
ExecuteNonQuery。此方法用於執行不返回任何行或值的命令。這些命令一般用於執行數據庫更新,但也可用於返回 存儲過程的輸出參數。
ExecuteReader。此方法用於返回 SqlDataReader對象,該對象包含由某一命令返回的 結果集
ExecuteDataset。此方法返回 DataSet對象,該對象包含由某一命令返回的 結果集
ExecuteScalar。此方法返回一個值。該值始終是該命令返回的第一行的第一列。
ExecuteXmlReader。此方法返回 FOR XML 查詢的 XML 片斷。


三、代碼
'/*************************************************   
'做者:金福林
'小組: 無
'說明:SqlHelper類 
'建立日期:2014/5/4 19:47:29  
'版本號:1.1.0  
'**********************************************/ 

Imports Entity
Imports System.Data.SqlClient
''' <summary>
''' 對數據庫的增刪改查
''' </summary>
''' <remarks></remarks>
Public Class SqlHelper
    Dim con As String = System.Configuration.ConfigurationSettings.AppSettings("con")
    Dim sqlcon As SqlConnection = New SqlConnection(con)
    Dim cmd As New SqlClient.SqlCommand '使用command對象執行命令並返回
    ''' <summary>
    ''' 執行增刪改三個操做,有參數
    ''' </summary>
    ''' <param name="cmdText"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="sqlParams"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As String, ByVal sqlParams As SqlParameter()) As Integer
        cmd.Parameters.AddRange(sqlParams) '將參數傳入
        cmd.CommandType = cmdType
        cmd.Connection = sqlcon   '設置鏈接
        cmd.CommandText = cmdText
        Try
            sqlcon.Open()  '打開鏈接
            Return cmd.ExecuteNonQuery()  '執行增刪改
            cmd.Parameters.Clear()  '清除參數

        Catch ex As Exception
            Return 0
        Finally
            Call CloseCon(sqlcon)
            Call CloseCmd(cmd)

        End Try
    End Function
    ''' <summary>
    ''' 執行增刪改,無參數
    ''' </summary>
    ''' <param name="cmdText"></param>
    ''' <param name="cmdType"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As String) As Integer
        cmd.CommandText = cmdText
        cmd.CommandType = cmdType
        cmd.Connection = sqlcon
        Try
            sqlcon.Open()
            Return cmd.ExecuteNonQuery()
        Catch ex As Exception
            Return 0
        Finally
            Call CloseCon(sqlcon)
            Call CloseCmd(cmd)
        End Try
    End Function
    ''' <summary>
    ''' 執行查詢,有參數
    ''' </summary>
    ''' <param name="cmdText"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="sqlParams"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As String, ByVal sqlParams As SqlParameter()) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim dt As New DataTable
        Dim ds As New DataSet

        cmd.CommandText = cmdText
        cmd.CommandType = cmdType
        cmd.Connection = sqlcon
        cmd.Parameters.AddRange(sqlParams)
        sqlAdapter = New SqlDataAdapter(cmd)

        Try

            sqlAdapter.Fill(ds) '填充dataset
            dt = ds.Tables(0)  'dt爲dataset的第一個表
            cmd.Parameters.Clear()
        Catch ex As Exception
            Return Nothing
        Finally
            Call CloseCmd(cmd)
        End Try
        Return dt
    End Function
    ''' <summary>
    ''' 執行查詢,無參數
    ''' </summary>
    ''' <param name="cmdText"></param>
    ''' <param name="cmdType"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function ExecSelect(ByRef cmdText As String, ByVal cmdType As String) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim ds As New DataSet
        cmd.CommandText = cmdText
        cmd.CommandType = cmdType
        cmd.Connection = sqlcon
        sqlAdapter = New SqlDataAdapter(cmd)

        Try
            sqlAdapter.Fill(ds)
            Return ds.Tables(0)
        Catch ex As Exception
            Return Nothing
        Finally
            Call CloseCmd(cmd)
        End Try
    End Function
    ''' <summary>
    ''' 關閉數據庫鏈接
    ''' </summary>
    ''' <param name="con"></param>
    ''' <remarks></remarks>
    Public Sub CloseCon(ByVal con As SqlConnection)
        If (con.State <> ConnectionState.Closed) Then
            con.Close()
            con = 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 Sub
End Class


四、使用

咱們只須要在D層,添加SqlHelper類,而後將上述代碼複製到你的類中code


使用代碼:我截取一部分代碼爲例htm


SqlHelper是一次思想的昇華,有了它仍須要咱們的進一步理解。對象

相關文章
相關標籤/搜索