微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlHelper的增删改查

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

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

任何一个系统,都会涉及数据的传输、操作。而数据的操作概括起来不外乎增删改查(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

原文地址:https://www.jb51.cc/vb/257740.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐