机房重构之SqlHelper应用

2024-08-26 20:32
文章标签 应用 重构 机房 sqlhelper

本文主要是介绍机房重构之SqlHelper应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于机房重构过程中每个功能的实现都会涉及到数据库的链接访问,代码重复率非常高,耗时耗力,还会使系统出现代码冗余,是一件非常讨人厌的工作。进而把这些重复的代码抽象成一个类,以直接调用的方式来满足需求。

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

这是最近的知识的梳理,初次使用,总结的比较简单,欢迎斧正。

SqlHelper中有两种方法,对数据库的查询和增删改,每种方法都有有参和无参两大类:

以下是在本次机房重构中SqlHelper的代码:


Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration          '添加必要引用Public Class SqlHelper'定义变量'获得数据库链接字符串Private ReadOnly strConnection As String = ("server=192.168.24.68;Database=机房重构.NET;User=sa;Password=123456;")'设置链接Dim conn As SqlConnection = New SqlConnection(strConnection)'定义Command命令Dim cmd As New SqlCommand' <summary>    ' 执行增删改三个操作,(有参)返回值为Boolean类型,确认是否执行成功    ' </summary>    ' <param name="cmdText">需要执行语句,一般是Sql语句,也有存储过程</param>    ' <param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>    ' <param name="paras">参数数组,无法确认有多少参数</param>    ' <returns></returns>    ' <remarks></remarks>Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As Integer'将传入的值,分别为cmd的属性赋值cmd.Parameters.AddRange(paras)        '将参数传入cmd.CommandType = cmdType             '设置一个值,解释cmdTextcmd.Connection = conn                 '设置连接,全局变量cmd.CommandText = cmdText             '设置SQL语句Tryconn.Open()                       '打开链接Return cmd.ExecuteNonQuery()      '执行增删改操作Catch ex As ExceptionThrow                         '如果出错就抛出Finallycmd.Parameters.Clear()            '清除参数Call CloseConn(conn)Call CloseCmd(cmd)End TryEnd Function' <summary>    ' 执行增删改三个操作,(无参)    ' </summary>    ' <param name="cmdText">需要执行语句,一般是Sql语句,也有存储过程</param>    ' <param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>    ' <returns>Interger,受影响的行数</returns>    ' <remarks>2013年2月2日8:19:59</remarks>   Public Function ExecAddDelUpdateNo(ByVal cmdText As String, ByVal cmdType As CommandType) As Integer'为要执行的命令cmd赋值cmd.CommandText = cmdText               '传入查询语句cmd.CommandType = cmdType               '设置Sql语句如何解释cmd.Connection = conn                   '设置连接'执行操作Tryconn.Open()Return cmd.ExecuteNonQueryCatch ex As ExceptionReturn 0FinallyCall CloseConn(conn)Call CloseCmd(cmd)End TryEnd Function' <summary>    ' 执行查询的操作,(有参),参数不限    ' </summary>    ' <param name="cmdText">需要执行语句,一般是Sql语句,也有存储过程</param>    ' <param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>    ' <param name="paras">传入的参数</param>    ' <returns></returns>    ' <remarks></remarks> Public Function ExecSeletct(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTableDim sqlAdpter As SqlDataAdapter            '是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据Dim dt As New DataTableDim ds As New DataSet'还是给cmd赋值cmd.CommandText = cmdText                  '设置查询语句cmd.CommandType = cmdType                  '设置Cmd对象的类型cmd.Connection = conn                      '数据库连接语句cmd.Parameters.AddRange(paras)             '传入参数sqlAdpter = New SqlDataAdapter(cmd)        '实例化适配器TrysqlAdpter.Fill(ds)                     '用adapter将dataSet填充dt = ds.Tables(0)                      'dataTable是dataSet的第一个表cmd.Parameters.Clear()                 '清除参数Catch ex As ExceptionMsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告!")FinallyCall CloseCmd(cmd)                     '最后一定要释放cmdEnd TryReturn dt      '返回查到的数据End Function' <summary>    ' 执行查询的操作,(无参)    ' </summary>    ' <param name="cmdText">需要执行语句,一般是Sql语句,也有存储过程</param>    ' <param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param>    ' <returns>dataTable,查询到的表格</returns>    ' <remarks></remarks>   Public Function ExecSelectNo(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTableDim sqlAdapter As SqlDataAdapterDim ds As New DataSet'给cmd赋值cmd.CommandText = cmdTextcmd.CommandType = cmdTypecmd.Connection = connsqlAdapter = New SqlDataAdapter(cmd)         '实例化适配器TrysqlAdapter.Fill(ds)                      '用adapter将dataSet填充Return ds.Tables(0)                      '返回dataSet的第一个表Catch ex As ExceptionReturn NothingFinallyCall CloseCmd(cmd)                       '关闭cmdEnd TryEnd Function' <summary>    ' 关闭连接    ' </summary>    ' <param name="conn">需要关闭的连接</param>    ' <remarks></remarks>   Public Sub CloseConn(ByVal conn As SqlConnection)If (conn.State <> ConnectionState.Closed) Then  '如果没有关闭conn.Close()                                '关闭连接conn = Nothing                              '不指向原对象End IfEnd Sub' <summary>    ' 关闭命令    ' </summary>    ' <param name="cmd">需要关闭的命令</param>    ' <remarks></remarks>    Public Sub CloseCmd(ByVal cmd As SqlCommand)If Not IsNothing(cmd) Then                      '如果cmd命令还存在cmd.Dispose()                               '释放资源cmd = Nothing                               '不指向原对象End IfEnd SubEnd Class

这篇关于机房重构之SqlHelper应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109601

相关文章

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda