亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SqlHelper初探之二

系統 2159 0

??????? 在上一篇簡單的介紹了sqlhelper的基本知識,接下來就讓我們進一步學習他的實踐過程。

?????? 首先: 我們要明白的一件事Sqlhelper不是寫出來的,而是在D層的代碼中提煉出來的?那么就會反問一句“D層中符合什么條件的代碼才可以提煉出來呢?用Sqlhelper有什么用呢?”那么帶著這些問題讓我們進入思考:

???????? 第一:Sqlhelper的代碼不是寫出來的,而是從D層的代碼中提煉出來的,即把那些執行增刪改查操作,存儲過程及程序集等中 相同的代碼 提煉出來,封裝成一個類,便于復用的過程。

???????? 第二:把它封裝成一個類的好處就是 :這提供了一種很好的使用 SqlHelper類來執行命令的模式,同時為開發人員選擇訪問數據的方式提供了必要的靈活性。每種方法的重載都支持不同的方法參數,因此開發人員可以確定傳遞連接、事務和參數信息的方式。

?????? 其次: 我們在該提煉的過程,要注意幾點。 Sqlhelper 大概可分為兩大類:一類是帶參數,另一類是不帶參數。當然帶參數的就有返回值,不帶參數的就沒有返回值。好的明白這幾點了就讓我們通過機房收費系統來進一步實踐吧!

?

        Imports System.Data  

    Imports System.Data.SqlClient  

    Imports System.Configuration  '必須要在管理器中添加引用    

    ''' <summary>  

    ''' SqlHelper類是專門提供給廣大用戶用于高性能、可升級和最佳練習的sql數據操作  

    ''' </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">需要執行語句,一般是Sql語句,也有存儲過程</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  

                Return 0                         '如果出錯,返回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>Interger,受影響的行數</returns>    

        ''' <remarks>2013年2月2日8:19:59</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">需要執行語句,一般是Sql語句,也有存儲過程</param>    

        ''' <param name="cmdType">判斷Sql語句的類型,一般都不是存儲過程</param>    

        ''' <param name="paras">傳入的參數</param>    

        ''' <returns></returns>    

        ''' <remarks></remarks>    

        Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable  

      

            Dim sqlAdapter As SqlDataAdapter  

            Dim dt As New DataTable  

            Dim ds As New DataSet  

            '還是給cmd賦值    

            cmd.CommandText = cmdText  

            cmd.CommandType = cmdType  

            cmd.Connection = conn  

            cmd.Parameters.AddRange(paras)  '參數添加    

            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                            '最后一定要銷毀cmd    

                Call CloseCmd(cmd)  

            End Try  

            Return dt  

        End Function  

      

      

        ''' <summary>    

        ''' 執行查詢的操作,(無參)    

        ''' </summary>    

        ''' <param name="cmdText">需要執行語句,一般是Sql語句,也有存儲過程</param>    

        ''' <param name="cmdType">判斷Sql語句的類型,一般都不是存儲過程</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賦值    

            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                            '最后一定要銷毀cmd    

                Call CloseCmd(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命令存在    

                cmd.Dispose()                   '銷毀    

                cmd = Nothing  

            End If  

        End Sub  

    End Class  
  

?????? ? 總結: 以上就是我對Sqlhelper的一些初步的理解和運用,希望在今后的學習中更進一步的學習和運用!

?

?

SqlHelper初探之二


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品中文字幕不卡在线 | 久久色吧| 伊人日本| 久久久久综合精品福利啪啪 | 亚洲国产人成在线观看 | 草的爽免费视频 | 国产成人毛片精品不卡在线 | 99热久久这里只有精品2010 | 欧美日日射 | 亚洲网视频 | 亚洲精品久久午夜香蕉 | 羞羞视频网站在线观看 | 亚洲国产成人久久一区www | 久久一区二区精品综合 | 一级毛片免费视频网站 | 亚洲精品国产经典一区二区 | 色综合久久伊人 | 一级毛片成人免费看免费不卡 | 欧美成人怡红院在线观看 | 日韩精品无码一区二区三区 | a4yy私人毛片 | 日本九九视频 | 国产成人久久精品区一区二区 | 天天综合天天综合色在线 | 中文字幕综合久久久久 | 天天综合天天射 | 日韩免费中文字幕 | 久久www成人看片 | 我要看一级毛片 | 欧美黑大粗硬毛片视频 | 国产精品午夜高清在线观看 | 国产精品伦理 | 色综合久久久久综合体桃花网 | 在线播放精品视频 | 伊人婷婷色香五月综合缴缴情 | 国产亚洲精品热视频在线观看 | 久草在线观看首页 | 亚洲一级毛片在线播放 | 国内在线视频 | 91视频原创| 欧美色无极 |