加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlHelper的增删改查

发布时间:2020-12-17 07:51:22 所属栏目:百科 来源:网络整理
导读:当一件事情被重复做了多次后,会想找一种办法来代替自己去做这个重复的动作。写程序也一样。 在程序中,对于重复的部分,如果是完全相同,那我们就会想着将其写成一个方法(过程、函数),放在一个具有权限的需求者都能够得着的地儿。如果需求者在同一项目中

当一件事情被重复做了多次后,会想找一种办法来代替自己去做这个重复的动作。写程序也一样。

在程序中,对于重复的部分,如果是完全相同,那我们就会想着将其写成一个方法(过程、函数),放在一个具有权限的需求者都能够得着的地儿。如果需求者在同一项目中,那么就把这个方法写成一个类,如果需求者在同一类中,那么就在本类中单独建一个方法写它。将相同的东西抽象出来,供多用户调用,就是用的抽象的思想。

任何一个系统,都会涉及数据的传输、操作。而数据的操作概括起来不外乎增删改查(CURD),现在的系统随着使用者的增多,越来越多的用户操作,大数据频繁操作。如果采用原来的方式来写,复杂的系统会造成大量赘余的代码。

在类上方添加两条引用:

Imports System.Data.SqlClient       '引用SQL数据库连接
Imports System.Configuration        '引用配置文件

建立一个操作数据库的SQLHelper类,

Public Class SQLHelper

    '获取配置文件中的连接字符串
    Private ReadOnly strSQLConnection As String = ConfigurationManager.AppSettings("sqlConcectStr")
    '定义连接
    Dim connSQL As SqlConnection = New SqlConnection(strSQLConnection)
    '定义cmd命令
    Dim cmdSQL As New SqlCommand
    '     ///<summary>
    '     ///depiction:<该方法是sqlhelper类的初始化>
    '     ///</summary>
    Public Sub New()
        connSQL = New SqlConnection(strSQLConnection)
    End Sub


    ''    ///<summary>
    ''    ///depiction:<该方法是关闭数据库的连接>
    ''    ///<summary>
    Private Sub CloseSQLConnection()
        '判断数据库连接对象状态是否为断开,如果还没有断,则断开
        If connSQL.State <> ConnectionState.Closed Then
            connSQL.Close()
        End If
    End Sub


    '     ///<summary>
    '     ///depiction:<该方法是关闭数据库命令>
    '     ///</summary>
    Private Sub CloseSQLCommand()
        '如果命令存在,则关闭
        If Not IsNothing(cmdSQL) Then
            cmdSQL.Dispose()   '销毁命令
            cmdSQL = Nothing
        End If
    End Sub


    '///<summary>
    ''//执行增删改三个操作,(有参)返回值为Boolean类型,确认是否执行成功
    '///</summary>
    '   ///<param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    '   ///<param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>
    '   ///<returns>
    '   ///<返回Boolean,成功为true,否则为false>
    '   ///</returns>
    Public Function ExecuteAddDelUpdate(ByVal strSql As String,ByVal cmdType As CommandType,ByVal sqlParams As SqlParameter()) As Boolean
        '用传进的参数填充本类自己的cmd对象
        cmdSQL.Parameters.AddRange(sqlParams)   '参数传入
        cmdSQL.CommandType = cmdType            '
        cmdSQL.Connection = connSQL             '连接
        cmdSQL.CommandText = strSql             '查询语句

        Try
            connSQL.Open()                     '打开连接
            Return cmdSQL.ExecuteNonQuery()    '执行操作
            cmdSQL.Parameters.Clear()          '清除参数
        Catch ex As Exception
            Return False
        Finally
            Call CloseSQLConnection()          '关闭连接
            Call CloseSQLCommand()             '结束命令
        End Try

    End Function


    '///<summary>
    '///执行增删改三个操作,(无参)返回值为Boolean类型,确认是否执行成功
    ''///</summary>
    '///<param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    '   ///<returns>
    '        ///<返回Boolean类型,成功为true,否则为false>
    '///</returns>
    Public Function ExecuteAddDelUpdate(ByVal strSql As String,ByVal cmdType As CommandType) As Boolean
        '用传进的参数填充类自己的cmd对象
        cmdSQL.CommandType = cmdType         '将
        cmdSQL.Connection = connSQL          '建立连接
        cmdSQL.CommandText = strSql          '设置查询语句


        Try
            connSQL.Open()                   '打开连接
            Return cmdSQL.ExecuteNonQuery()  '返回sql执行后受影响的行数
        Catch ex As Exception
            Return False
        Finally
            Call CloseSQLConnection()          '关闭连接
            Call CloseSQLCommand()             '结束命令
        End Try


    End Function

    '///<summary>
    ''///执行查询操作,(有参)返回值为DataTable类型
    '///</summary>
    '    ///<param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    ''   ///<param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>
    '    ///<returns>
    '         ///<返回表>
    '    ///</returns>
    Public Function ExecuteSelect(ByVal strSql As String,ByVal sqlParams As SqlParameter()) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim dtSQL As New DataTable
        Dim dsSQL As New DataSet

        '用传进的参数填充本类自己的cmd对象
        cmdSQL.Parameters.AddRange(sqlParams)      '传入参数
        cmdSQL.CommandType = cmdType
        cmdSQL.Connection = connSQL                '建立连接
        cmdSQL.CommandText = strSql                '查询语句

        sqlAdapter = New SqlDataAdapter(cmdSQL)    '实例化Adapter

        Try
            sqlAdapter.Fill(dsSQL)               '用Adater将DataSet填充
            dtSQL = dsSQL.Tables(0)              'DataTable为DataSet的第一个表
            cmdSQL.Parameters.Clear()            '清除参数
        Catch ex As Exception
            MsgBox("查询失败",CType(vbOKOnly + MsgBoxStyle.Exclamation,MsgBoxStyle),"警告")
        Finally
            Call CloseSQLCommand()
        End Try

        Return dtSQL

    End Function


    '///<summary>
    ''//执行查询操作,(无参)返回值为DataTable类型
    ''</summary>
    '    ///<param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    '    ///<param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>
    '    ///<returns>
    '       ///<返回表>
    '    ///</returns>
    Public Function ExecuteSelect(ByVal strSql As String,ByVal cmdType As CommandType) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim dtSQL As New DataTable
        Dim dsSQL As New DataSet

        '用传进的参数填充类自己的cmd对象
        cmdSQL.CommandText = strSql
        cmdSQL.CommandType = cmdType
        cmdSQL.Connection = connSQL
        sqlAdapter = New SqlDataAdapter(cmdSQL)         '实例化Adapter

        Try
            sqlAdapter.Fill(dsSQL)                      '用Adaper将DataSet填充
            dtSQL = dsSQL.Tables(0)                     'DataTable为DataSet的第一个表
        Catch ex As Exception
            MsgBox("查询失败","警告")
        Finally
            Call CloseSQLCommand()
        End Try

        Return dtSQL

    End Function

End Class

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读