vb.net中的SqlHelper

来源:互联网 发布:mac u盘格式 编辑:程序博客网 时间:2024/05/16 00:51

1、定义:

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


SqlHelper其实就是一个封装的类,是对连接数据的一次抽象。

所谓无知者无谓,刚开始用vb.net连接SQL数据库的时候,每次都手动敲一遍,现在有巨人给我们总结出来SqlHelper类,只要调用这个类,就可以很容易的连接数据库,而且大幅度减少了出错的可能。


2、方法:
在 SqlHelper 类中实现的方法包括:
ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
ExecuteReader。此方法用于返回SqlDataReader对象,该对象包含由某一命令返回的结果集。
ExecuteDataset。此方法返回DataSet对象,该对象包含由某一命令返回的结果集。
ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。
ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。


3、代码
'/*************************************************   '作者:金福林'小组: 无'说明:SqlHelper类 '创建日期:2014/5/4 19:47:29  '版本号:1.1.0  '**********************************************/ Imports EntityImports 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 SubEnd Class


4、使用

我们只需要在D层,添加SqlHelper类,然后将上述代码复制到你的类中


使用代码:我截取一部分代码为例


SqlHelper是一次思想的升华,有了它仍需要我们的进一步理解。


0 0
原创粉丝点击