sqlHelper的增删改查

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 cmdType As CommandType, 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("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
        Finally
            Call CloseSQLCommand()
        End Try

        Return dtSQL

    End Function

End Class

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116442.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库设计之概念结构设计工具_数据库关系设计

    数据库设计之概念结构设计工具_数据库关系设计概念模型将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计概念模型的特点(1)能真实、充分地反映现实世界,是现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见。(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换描述概念模型的工具E-R模型E-R模型1.实体之间的联系(1)两个实体型之间的联系:①一对一联系(1∶1)②一对多联系(1∶n)③多对多联系(m∶n)

    2022年10月12日
    2
  • BS架构和CS架构的区别

    BS架构和CS架构的区别介绍BS:(Browser/Server,浏览器/服务器模式),web应用可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。CS:(Client/Server,客户端/服务器模式),桌面级应用响应速度快,安全性强,个性化能力强,响应数据较快区别硬件环境不同C/S用户固定,一般只应用于局域网中,要求拥有相同的操作系统,如果对于不同操作系统还要相应开发不同的版本,并且对…

    2022年6月15日
    33
  • 多模态综述

    多模态综述多模态综述介绍参考文献:《MultimodalMachineLearning:ASurveyandTaxonomy》介绍我们身边的环境就是一个多模态的环境,看到的实体、听到的声音、闻到的气味和尝到的味觉。本篇综述不是着重于多模态的应用,而是重点关注多模态的方法和技术。多模态问题的定义在于数据来源是不同模态的数据,而这些数据具有异质性(heterogeneity),则带来了多模态的五个挑战:representation,translation,alignment,fusion和co-

    2022年6月17日
    88
  • python codecs_python中转换模块codecs的讲解(附示例)

    python codecs_python中转换模块codecs的讲解(附示例)本篇文章给大家带来的内容是关于 python 中转换模块 codecs 的讲解 附示例 有一定的参考价值 有需要的朋友可以参考一下 希望对你有所帮助 0 编码编码转换时 通常需要以 unicode 作为中间编码 即先将其他编码的字符串解码 decode 成 unicode 再从 unicode 编码 encode 成另一种编码 str1 decode gb2312 将 gb2312 编码的字符串转换成 u

    2025年7月13日
    4
  • pycharm2021.11.3激活补丁_最新在线免费激活

    (pycharm2021.11.3激活补丁)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    71
  • Redis – 11、集群(Cluster)

    Redis – 11、集群(Cluster)redis集群是对redis的水平扩容,即启动N个redis节点,将整个数据分布存储在这个N个节点中,每个节点存储总数据的1/N。

    2025年7月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号