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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 腾讯与唯品会笔试面试经历[通俗易懂]

    腾讯与唯品会笔试面试经历

  • input file获取文件路径

    input file获取文件路径html代码段:<inputtype=”file”@change.prevent.stop=”upload”>vue中script代码段:data(){fileName:”},methods:{upload(event){letfiles=event.target.files[0];th…

  • 卡巴斯基的离线更新以及病毒库备份[通俗易懂]

    卡巴斯基的离线更新以及病毒库备份[通俗易懂]卡巴斯基的离线更新以及病毒库备份 1、如果你用的是卡巴斯基5.0…..(….为版本号),病毒库在X:\DocumentsandSettings\AllUsers\ApplicationData\KasperskyAnti-VirusPersonal\5.0\base(其中X为安装时操作系统盘符,下同。专业版为X:\DocumentsandSettings\AllUsers…

  • 通过优启通制作U盘启动安装Windows系统「建议收藏」

    通过优启通制作U盘启动安装Windows系统「建议收藏」通过U盘启动安装Windows系统(一)制作启动项,拷贝镜像(EASYU软件)通过EASYU(优启通),制作启动盘,启动盘制作成功之后,在优启通主界面,模拟测试,选BIOS测试,若能进入,将win7的GHO镜像文件放入U盘.运行优启通点击“归还空间”,分区格式选择NTFS,点击“全新制作”。(UEFI和NTFS的区别在于,UEFI格式的启动盘不能放大于4G的GHO镜像文件,NTFS可以放大于4G的GHO镜像文件或者ISO镜像文件)制作完要检验一下启动盘是否制作成功,可

  • win10键盘锁住了怎么解决

    win10键盘锁住了怎么解决有win10系统用户在使用的时候,发现键盘被锁住了,导致无法使用,经过分析可能是不小心按到了键盘上的锁住键锁定键盘的快捷键笔记本电脑:Fn+Numlock键第一种方法:1、外接键盘,是否按过“Numlock”键,如果按过“Numlock”键,再次使用外接键盘按一次“Numlock”键,就会恢复正常了。(仅仅锁定或者解锁数字键盘)2、可以在电脑键盘中找到“Fn”键,这个键又被称为“第二功能键”,因为当你按下这个键,再去按另一个带有两种功能的键时,那个键就会出现第二种功能。3、再找到“F.

  • 人脸识别之表情识别(二)–基于CNN分类「建议收藏」

    说白了,就是个分类任务,但是纯粹的CNN分类,只是对传统方式的提升,本质思路没有改变,效果也不是很明显。转自:https://blog.csdn.net/walilk/article/details/58709611前言  [机器学习]实验笔记系列是以我在算法研究中的实验笔记资料为基础加以整理推出的。该系列内容涉及常见的机器学习算法理论以及常见的算法应用,每篇博客都会介绍实验相关的数…

发表回复

您的电子邮箱地址不会被公开。

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