VB.NET三层之用户查询窗体

目录

前言:

过程:

UI层代码展示:

BLL层代码展示:

DAL层代码展示:

查询用户效果图:​

总结:


前言:

想要对用户进行查询,需要用到控件DataGrideView,通过代码的形式将数据库表中的数据显示在DataGrideview控件中,不用对DatGridView控件进行任何的操作,如果需要操作大家可以看看这一篇文章有详细的讲解:DataGrideView:操作讲解
在这里面也运用了分层的思想,从中也体会到分层的好处:

分层好处
单一职责:每一层之负责一个职责,职责边界清晰,不会照成跨级调用。
高内聚分层是把相同的职责放在同一层中,所有业务的逻辑聚在BLL层。
低耦合:依赖关系非常简单,上层只能依赖于下层,没有循环依赖。
易维护:面对业务的修改或者变动更容易修改。那层出现错误就修改那层
易复用:功能模块变动了,只需调整相应的功能模块

过程:

在开始的时候需要进行引用,这样我们才能相互的调用,在这里截出一个UI层引用的界面,其他层也是一样,找到引用进行添加。

1.UI右(BLL层,DAL层),BLL→(DAL层,实体层),DAL→(实体层)

2.界面的展示,其他控件可以根据自己的需求进行添加:

UI层代码展示:

UI层负责设计和实现,将数据从应用程序传递给用户,并接受用户的输入。页面的显示,比如各种应用的平台,微信,淘宝,面向用户的界面接受用户的输入就是UI层

    Public Sub Button1_Click(sender As Object, e As EventArgs) Handles BtnOK.ClickTry'定义实体类Dim selectUser As New Entity.Usersurface'赋值selectUser.UserNo = TxtUserNo.Text'实例化B层Dim aselect As New BLL.UserBLL'清除文本框中的数据TxtUserNo.Clear()'调用D层的方法DataGridView1.DataSource = aselect.selectBAL(selectUser)'异常处理语句块,用于捕获Try块中抛出的异常Catch ex As Exception'处理异常信息显示在文本框中MessageBox.Show(ex.Message.ToString)End TryEnd Sub

BLL层代码展示:

BLL负责处理应用程序的业务逻辑,包括数据的验证,计算,逻辑处理。用户是看不到的,进行逻辑上的判断。

 Public Function selectBAL(selectUser As Entity.Usersurface) As DataTable'实例化Dim sqlcommnd As New SqlCommand'实例化D层Dim aselect As New DAL.UserDALDim dst As New DataSetDim dt As New DataTableDim dataAdapter As New SqlDataAdaptersqlcommnd = aselect.selectDAL(selectUser)dataAdapter.SelectCommand = sqlcommnd'Fill用于将数据填充到DataSet或DataTable中dataAdapter.Fill(dst, "User")dt = dst.Tables("User")Return dtEnd Function

DAL层代码展示:

DAL负责管理应用程序的数据存储和访问,包括对数据库的读取、写入、更新、删除、等等
数据访问层通过包括数据访问组件、数据访问对象,简单的来说就是跟数据库进行打交道。

数据库的连接:

'连接数据的详细操作,DAL层通过调用,或者可以直接在DAL层中直接下载DAL层也可以
Public Class connectPublic Shared Function connstring() As Stringconnstring = "Server= .;Database=cybercafe;User ID=sa;Password=123456;"End Function
End Class

DAL层详细代码:

    Public Function selectDAL(selectuser As Entity.Usersurface) As SqlCommand'定义实体类'连接数据库Dim conn As New SqlConnection(connect.connstring)'打开数据库conn.Open()'数据库查询Dim sql As String = "SELECT * FROM User_info Where UserNo=@UserNo"'执行SQLDim cmd As SqlCommand = New SqlCommand(sql, conn)cmd.Parameters.Add(New SqlParameter("@UserNo", selectuser.UserNo))'关闭数据库conn.Close()'返回消息Return cmdEnd Function

查询用户效果图:

总结:

想要掌握三层需要学习其概念、特点和应用,并通过实现不断加深理解和改进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/141550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins分步式构建环境(agent)

rootjenkins:~# netstat -antp|grep 50000 tcp6 0 0 :::50000 ::😗 LISTEN 5139/java 1.52 安装Jenkins rootubuntu20:~# dpkg -i jenkins_2.414.3_all.deb 配置各种类型的Agent的关键之处在于启动Agent的方式 ◼ JNLP Agent对应着“通过Java Web启动代理”这种方…

Pass基础-DevOps

,DevOps是Dev(开发)和Ops(运维/运营)的结合,它将人、流程、工具、工程实践等等结合起来应用到IT价值流的实现过程中,是一系列原则、方法、流程、实践、工具的综合体。DevOps面向应用的全生命周期…

js编辑只取修改后的对象的属性和值

需求:在el-table的列表编辑操作后, 第一步:获取当前行数据,为对象:{}, 第二步:数据回填 第三步:编辑 第四步:请求后端接口 本文章操作就是在编辑完成后,只取编…

深度学习 YOLO 实现车牌识别算法 计算机竞赛

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 该项目较…

springboot整合SSE技术开发经验总结及心得

springboot整合SSE技术开发经验总结及心得 一、开发背景二、快速了解SSE1、概念2、特性 三、开发思路四、代码演示1、引入依赖2、服务端代码3、后端定时任务代码 4、解决乱码的实体类4、前端代码 五、核心代码分析 一、开发背景 公司需要开发一个大屏界面,大屏页面…

027 - STM32学习笔记 - ADC初识(一)

026- STM32学习笔记 - ADC初识(一) 前几天不小心把板子掉地上了,液晶屏摔坏了,暂时先停一下液晶屏的学习,等新的板子来了再继续学习。 一、ADC介绍 ADC指的是Analog to Digital Converter(模数转换器&…

【机器学习基础】机器学习入门(2)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐:【机器学习基础】机器学习入门(1) 💡…

VB.net TCP服务端监听端口接收客户端RFID网络读卡器上传的读卡数据

本 示例使用设备介绍:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) Imports System.Threading Imports System.Net Imports System.Net.Sockets Public Class Form1Dim ListenSocket As SocketDim Dict As New Dictionary(Of…

【汇编】汇编语言的介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、汇编是什么?二、为什么要学习汇编语言?三、学习汇编语言的好处四、安装汇编环境4.1 下载虚拟环境4.2 配置虚拟环境 总结 前言 计算…

使用百度语音识别技术实现文字转语音的Java应用

探讨如何使用百度语音识别技术将文字转换为语音的Java应用。百度语音识别技术是一种强大的语音识别服务,可以将输入的文字转换为自然流畅的语音输出。我们将使用Java编程语言来实现这个应用,并提供相应的源代码。 首先,我们需要准备一些前提…

Cesium深入浅出之自定义材质

引子 做为一名技术宅却没有能拿得出手的技术无疑是最可悲的事情。三年前,当我第一次接触Cesium的时候就被它强大和炫丽所折服,最关键的是它还是开源的。以前我一直是机械地敲着业务代码,好像计算机程序就只能干这点事情一样,而 C…

Qt文档阅读笔记-Fetch More Example解析

Fetch More Example这个例子说明了如何在视图模型上添加记录。 这个例子由一个对话框组成,在Directory的输入框中,可输入路径信息。应用程序会载入路径信息的文件信息等。不需要按回车键就能搜索。 当有大量数据时,需要对视图模型进行批量增…

Git忽略文件.gitignore的使用

1.为什么使用? 当你使用git add .的时候有没有遇到把你不想提交的文件也添加到了缓存中去?比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务…

数据库 并发控制

多用户数据库系统:允许多个用户同时使用同一个数据库的数据库系统 交叉并发方式:在单处理机系统中,事务的并行执行实际上是这些并行事务的并行操作轮流交叉运行 同时并发方式:在多处理机系统中,每个处理机可以运行一个…

Java设计模式-结构型模式-代理模式

代理模式 代理模式静态代理动态代理JDK动态代理CGlib动态代理 代理模式 创建一个代理对象来控制对原始对象的访问,可以用来扩展原始对象的功能,同时保护原始对象 一般使用代理模式的目的有两个: 保护目标对象增强目标对象 代理模式有两种实现…

【OpenCV实现图像:用OpenCV图像处理技巧之巧用直方图】

文章目录 概要前置条件统计数据分析直方图均衡化原理小结 概要 图像处理是计算机视觉领域中的重要组成部分,而直方图在图像处理中扮演着关键的角色。如何巧妙地运用OpenCV库中的图像处理技巧,特别是直方图相关的方法,来提高图像质量、改善细…

stm32超声波测距不准的解决方法(STM32 delay_us()产生1us)及stm32智能小车超声波测距代码(C语言版本)

首先要说明一下原理:使用stm32无法准确产生1us的时间,但是超声波测距一定要依赖时间,时间不准,距离一定不准,这是要肯定的,但是在不准确的情况下,要测量一个比较准确的时间,那么只能…

同一个Unity项目打开两个Unity Editor实例

特殊情况下,同一个项目需要同时打开两个编辑器做测试,如多人在线游戏,或者有通信功能的时候就有这样的需求。同时也为了方便调试和观察日志。并且修改的是同一份代码。 命令介绍: 实现思路: 使用 mklink 命令 分别创建…

使用 huggingface_hub 镜像下载 大模型

download.py 👇 import os # 配置 hf镜像 os.environ[HF_ENDPOINT] https://hf-mirror.com# 设置保存的路径 local_dir "XXXXXX"# 设置仓库id model_id "sensenova/piccolo-large-zh"cmd f"huggingface-cli download --resume-downlo…

【MySQL】库的相关操作 + 库的备份和还原

库的操作 前言正式开始创建数据库删除数据库编码集查看系统默认字符集以及校验规则字符集校验规则 所有支持的字符集和校验规则所有字符集所有校验规则 指明字符集和校验规则创建数据库相同的字符集用不同的校验规则读取会出现什么情况 alter修改数据库show create databasealt…