VB.NET版机房收费系统---SqlHelper
2023-09-27 14:29:32 时间
SqlHelper,最早接触这个词儿的时候,好像是13年的暑假,那个夏天来的比往年来的稍晚一些,呵呵,sqlhelper,翻译成中文就是数据库助手,帮手。百度百科这样对她进行阐述:
SqlHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化我们重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便!
可是,好好的,我们为什么要用SqlHlper?我想百度百科上的解释已经很清楚很明白了,SqlHlper是在D层中的代码抽象出来的,那D层中什么样的代码才能抽象出来?原来啊,就是把那些对数据库进行增删改查的操作,存储过程及程序集等中相同的代码抽象出来!
在 SqlHelper 类中实现的方法包括:
ExecuteNonQuery。此方法用于执行(有参数或无参数的)不返回任何行或值的命令。这些命令通常用于执行数据库(增\删\改)更新,但也可用于返回存储过程的输出参数。
ExecuteReader。此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。
ExecuteDataset。此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。
下面是SqlHelper的具体实现:
Imports System.Data.SqlClient Imports System.Configuration Public Class SqlHelper 定义连接字符串 Dim strConnection As String = System.Configuration.ConfigurationSettings.AppSettings("strConnection") 定义连接 Dim conn As SqlConnection 定义命令 Dim cmd As SqlCommand 初始化连接对象 Public Sub New() conn = New SqlConnection(strConnection) End Sub /// summary /// depiction: 有参数的非查询的操作 /// /summary /// param name=" strText " 增删改语句或者存储过程 /param /// param name=" cmdType " 命令类型文本或者存储过程 /param /// param name=" sqlParameter " 参数数组 /param /// returns /// 返回布尔值 /// /returns Public Function ExecuteNonQuery(ByVal strText As String, ByVal cmdType As CommandType, ByVal sqlParameter As SqlParameter()) As Boolean Dim cmd As New SqlCommand 定义命令 cmd.CommandText = strText sql语句或存储过程名字 cmd.CommandType = cmdType 命令类型是StoredProcedure时,调用存储过程,一般为CommandText cmd.Connection = conn 连接数据库 cmd.Parameters.AddRange(sqlParameter) 传参 Dim flag As Boolean = False 定义返回值 conn.Open() 打开数据库连接 flag = cmd.ExecuteNonQuery cmd.Parameters.Clear() Catch ex As Exception flag = False Finally Call CloseConnection(conn) 关闭数据库连接 Call CloseCmd(cmd) End Try Return flag End Function /// summary /// depiction: 获取一个带参数的查询结果阅读器 /// /summary /// param name=" strText " 增删改语句或者存储过程 /param /// param name=" cmdType " 命令类型文本或者存储过程 /param /// param name=" sqlParameter " 参数数组 /param /// returns /// 返回布尔值 /// /returns Public Function ExecuteReader(ByVal strText As String, ByVal cmdType As CommandType, ByVal sqlParameter As SqlParameter()) As Boolean Dim cmd As New SqlCommand Dim reader As SqlDataReader cmd.CommandText = strText sql语句或存储过程名字 cmd.CommandType = cmdType 命令类型是StoredProcdeure时,调用存储过程,一般为CommandText cmd.Connection = conn cmd.Parameters.AddRange(sqlParameter) 传参 Dim flag As Boolean = False 定义返回值 conn.Open() reader = cmd.ExecuteReader flag = reader.Read() cmd.Parameters.Clear() Catch ex As Exception flag = False Finally Call CloseConnection(conn) Call CloseCmd(cmd) End Try Return flag End Function /// summary /// depiction: 获取一个带参数的查询DataTable结果集 /// /summary /// param name=" strText " 增删改语句或者存储过程 /param /// param name=" cmdType " 命令类型文本或者存储过程 /param /// param name=" sqlParameter " 参数数组 /param /// returns /// 返回DataTable /// /returns Public Function ExecuteReaderTable(ByVal strText As String, ByVal cmdType As CommandType, ByVal sqlParameter As SqlParameter()) As DataTable Dim cmd As New SqlCommand 定义命令 Dim dataAdapter As New SqlDataAdapter 定义一个适配器对象 Dim dst As New DataSet Dim dt As New DataTable cmd.CommandText = strText sql语句或存储过程名字 cmd.CommandType = cmdType 命令类型是StoredProcdeure时,调用存储过程,一般为CommandText cmd.Connection = conn 连接数据库 cmd.Parameters.AddRange(sqlParameter) 传参 conn.Open() dataAdapter.SelectCommand = cmd dataAdapter.Fill(dst) dt = dst.Tables(0) Catch ex As Exception Call CloseConnection(conn) Call CloseCmd(cmd) End Try Return dt End Function /// summary /// depiction: 获取上机人数 /// /summary /// param name=" strText " 增删改语句或者存储过程 /param /// param name=" cmdType " 命令类型文本或者存储过程 /param /// param name=" sqlParameter " 参数数组 /param /// returns /// 返回整型 /// /returns Public Function ExecuteScalar(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParameter As SqlParameter()) As Integer Dim cmd As New SqlCommand Dim count As Integer cmd.CommandText = cmdText cmd.CommandType = cmdType cmd.Connection = conn cmd.Parameters.AddRange(sqlParameter) conn.Open() count = cmd.ExecuteScalar Catch ex As Exception Throw New Exception(ex.Message.ToString()) Finally Call CloseCounection(conn) Call CloseCmd(cmd) End Try Return count End Function /// summary /// depiction: 算取金额 /// /summary /// param name=" strText " 增删改语句或者存储过程 /param /// param name=" cmdType " 命令类型文本或者存储过程 /param /// param name=" sqlParameter " 参数数组 /param /// returns /// 返回integer /// /returns Public Function ExecuteScalarCash(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParameter As SqlParameter()) As Decimal Dim cmd As New SqlCommand Dim cash As Decimal cmd.CommandText = cmdText cmd.CommandType = cmdType cmd.Connection = conn cmd.Parameters.AddRange(sqlParameter) Dim i As String conn.Open() i = cmd.ExecuteScalar.ToString() If i = "" Then cash = 0.0 Else cash = i End If Catch ex As Exception Throw New Exception(ex.Message.ToString()) Finally Call CloseConnection(conn) Call CloseCmd(cmd) End Try Return cash End FunctionSqlHelper封装成一个类,为开发人员选择访问数据库的方式提供了灵活性,每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。像是打包,封装的思想完美诠释,抽离出相同的内容,使代码得到复用!
Public Sub CloseConnection(ByVal conn As SqlConnection) If Not IsNothing(conn.State ConnectionState.Closed) Then conn.Close() 关闭连接 conn = Nothing End If End Sub Private Sub CloseCmd(cmd As SqlCommand) If Not IsNothing(cmd) Then 判断是否为空 cmd.Dispose() cmd = Nothing End If End Sub End Class
【.NET基础】Linq常用语法代码演示 前言:前言不重要,linq入门常用的语法,linq语法可以用来写操作集合、数据库表集合等等几乎所有集合类型的操作。下面就写几个案例(以List集合来做的),看代码和运行结果即可。
机房收费系统(VB.NET)——存储过程实战 最初接触存储过程是在耿建玲老师的视频里,当初只是草草过了一遍,只是有了个印象,知道了这个名词;大二时也有SqlServer数据库这门课,不过老师没讲,自己也没看;真正对存储过程的了解来自于自学考试中的《数据库系统原理》,在考试中,知道存储过程是干嘛的,在纸上怎么写,但从来没有在DBMS中亲手敲过。于是机房收费系统给了我这个机会。 在这里不再过多叙述关于存储过程德基本知识,只写一下在机房收费系统这个小项目中是如何用到存储过程的。
.NET的SqlHelper应用代码 首先需要引用命名空间 ,同时也需要右击 引用 -- 添加引用 -- 程序集 -- 框架 -- System.Configuration ,SqlHelper属于三层中的DAL层: using System.
相关文章
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->WinForm版本重构岗位授权管理界面更规范、高效与美观
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本“产品管理”事例编辑界面新增KindEditor复文本编辑控件
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台
- ASP.NET MVC动态加载数据
- 开发(ASP.NET程序)把写代码写至最有面向对象味道
- 解析大型.NET ERP系统 版本控制
- 解析大型.NET ERP系统 权限模块设计与实现
- 使用.NET Core和Vue搭建WebSocket聊天室
- C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[中]:管道如何处理请求
- .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
- .NET Core采用的全新配置系统[10]: 配置的同步机制是如何实现的?
- ASP.NET MVC Controller激活系统详解:默认实现
- [.NET] 《Effective C#》快速笔记 - C# 中的动态编程
- VB.NET版机房收费系统---组合查询
- VB.NET版机房收费系统---导出Excel表格
- .Net函数Math.Round你会用吗?
- .Net框架搭建之1、SQL Server EF MVC简单三层框架
- asp.net mvc 实体类成员变量标识示例