三层实例--加入信息
对三层的基本知识已经有了一定的了解和掌握,可是要想真正去灵活运用它还须要我们去实践,仅仅有经过亲自己主动手操作实现后才干理解得更加透彻。
首先我们须要建一张数据表,以我的为例,建一张Users表,加入UserName、Password、Email等字段。
然后就開始在VS上进行操作,先建一些主要的项目,例如以下表:
实体类是贯穿于三层之间,进行数据传递:
Public Class UserInfoPublic ID As IntegerPublic UserName As StringPublic Password As StringPublic Email As StringProperty UID As IntegerGetReturn IDEnd GetSet(value As Integer)ID = valueEnd SetEnd PropertyProperty UUserName As StringGetReturn UserNameEnd GetSet(value As String)UserName = valueEnd SetEnd PropertyProperty UPassword As StringGetReturn PasswordEnd GetSet(value As String)Password = valueEnd SetEnd PropertyProperty UEmail As StringGetReturn EmailEnd GetSet(value As String)Email = valueEnd SetEnd Property
End Class
DAL层是对数据库进行操作:
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Data
Imports System.Data.SqlClient
Imports Add.ModelPublic Class UserDAOPublic Function ConnectString() As String '连接数据库ConnectString = "server=.;UID=sa;PWD=123456;database=Login"End FunctionPublic Function AddUser(ByVal userinfo As UserInfo) As BooleanDim con As SqlClient.SqlConnectionDim cmd As SqlClient.SqlCommandDim intResult As Integercon = New SqlClient.SqlConnection(ConnectString())cmd = con.CreateCommand()cmd.CommandText = "insert into Users(UserName,Password,Email) values('" & userinfo.UserName & "','" & userinfo.Password & "','" & userinfo.Email & "')"cmd.CommandType = CommandType.Textcon.Open()intResult = cmd.ExecuteNonQuery()If intResult < 0 ThenReturn TrueElseReturn FalseEnd Ifcon.Close()con = NothingEnd FunctionPublic Function IsExist(ByVal userinfo As Model.UserInfo) As BooleanDim con As SqlClient.SqlConnection = New SqlClient.SqlConnection(ConnectString)Dim cmd As SqlClient.SqlCommandDim dalReader As SqlClient.SqlDataReadercmd = con.CreateCommandcmd.CommandText = "select * from Users where UserName='" & userinfo.UserName & "'"cmd.CommandType = CommandType.Textcon.Open()dalReader = cmd.ExecuteReader()'推断数据是否已经存在If dalReader.HasRows = True ThenReturn TrueElseReturn FalseEnd Ifcon.Close()con = NothingEnd Function
End Class
BLL层进行逻辑推断,而且实现UI和DAL层的数据交互:
Imports Add.DAL
Imports Add.Model
Public Class ManagerPublic Function Adduser(ByVal user As UserInfo) As BooleanDim dao As New UserDAODim userinfo As New UserInfoIf dao.IsExist(user) = True ThenReturn FalseElsedao.AddUser(user)Return TrueEnd IfEnd Function
End Class
UI层是用户操作的界面,为用户提供输入的界面和返回信息:
Imports Add.BLL
Imports Add.Model
Public Class Form1Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.ClickDim AddStu As New Manager '实例化B层Dim UStudent As New UserInfo '实例化实体类If Trim(txtUserName.Text) = "" ThenMessageBox.Show("请输入username")Exit SubEnd IfIf Trim(txtPassword.Text) = "" ThenMessageBox.Show("请输入password")Exit SubEnd IfIf Trim(txtPassword2.Text) = "" ThenMessageBox.Show("请确认password")Exit SubEnd IfIf Trim(txtPassword.Text) <> Trim(txtPassword2.Text) ThenMessageBox.Show("两次password不同样,请又一次输入")Exit SubEnd If'将输入的数据存储到实体类,进行传值UStudent.UserName = txtUserName.TextUStudent.Password = txtPassword.TextUStudent.Email = txtEmail.TextIf AddStu.Adduser(UStudent) Then '用户不存在MessageBox.Show("加入成功")Else '用户已经存在MessageBox.Show("该用户已注冊,请又一次加入")End IfEnd SubPrivate Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.ClickEndEnd Sub
End Class
运行程序:
总结:
通过这个小样例,让自己对三层的理解更加深刻,也知道了该怎样运用它。原先停留在表面上的理解,至此也升华到了操作上。尽管先前有非常多不理解的地方,可是通过实践,自己得到了理解。所以,当我们遇到问题的时候,不要只去理解,要通过实践去做,唯独真正做过之后才干真正理解。
转载于:https://www.cnblogs.com/gcczhongduan/p/4233675.html
三层实例--加入信息相关推荐
- 有史以来最简单的三层实例(C#)
三层已经学了很久了,一直没有写博客是因为自己感觉对三层的理解还太肤浅,怕写的不对误导别人.当然就现在我的水平而言对于三层的理解还是不够深刻,但是我感觉不至于误导别人了,所以将我对于三层的一些理解写出来 ...
- WinForm高级控件实例--职员信息登记
WinForm高级控件实例--职员信息登记 转载于:https://www.cnblogs.com/macT/p/9288092.html
- PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
相关文章: 1.快递单中抽取关键信息[一]----基于BiGRU+CR+预训练的词向量优化 2.快递单信息抽取[二]基于ERNIE1.0至ErnieGram + CRF预训练模型 3.快递单信息抽取[ ...
- AWS组件详解3——EC2之配置实例详细信息
这是本系列文章的第三篇,上一篇EC2实例类型,请戳这里.作者 黄佳 在启动EC2的第三步中,会出现非常多的配置选项,比如说设定要启动的实例个数.实例是预留实例还是竞价实例(这将决定实例的具体价格).以 ...
- 【C#实践】三层实例:登录过程
关于三层,看完一遍,想着开始敲七层,看着别人的代码敲都有点找不到,于是重新敲了一遍三层,收获很多! 首先,它没有模板,也不是一下子就完成的,它是有思路的,根据思路走,整个过程就是很自然而然的过程! D ...
- Vue指令练习实例-学生信息录入
很好的一个可以感受Vue.js的MVVM模型,数据和模型双向绑定的实例练习. <!doctype html> <html lang="en"> <he ...
- mvc三层架构(用户信息管理系统)
mvc三层架构(实战项目 用户信息管理系统) 一.三层架构 View 层:用于接收用户提交请求的代码. Service 层:系统的业务逻辑主要在这里完成. Dao 层:直接操作数据库的代码. 二.三层 ...
- 基于asp.net的三层架构美食信息在线分享网站mvc
所谓色.香.味.意.型.养,世界上只有美食能同时满足人的六感,无人能抗拒美食的诱惑.而生活节奏越来越快的今天,美食对于人们的重要性愈加重要.此次设计所做的是一个关于美食信息网络在线分享的网站.此网站设 ...
- 服务器信息管理 实例,配置信息输出到syslog服务器示例
配置不同模块和级别的日志分别输出到不同的syslog服务器中,同时配置备份syslog服务器,实现对信息的备份. 组网需求 运行中的Device会产生大量的信息,而Device本身的存储空间相对有限, ...
- 解决Eureka注册服务中实例info信息无法动态显示$project.artifactId$的问题
1.问题描述 虽然在yml中配置了$开头$结尾的变量,但是实际展示时无法动态显示. 2.原始的配置 springcloud父工程中pom文件中的配置 <build><finalNam ...
最新文章
- linux 换行符_「linux」libevent demo详细分析(对比epoll)
- 亿级流量峰值没在怕,“缓存”技术来减压!
- MySQL复习资料(二)——MySQL-DDL语句
- navigationController的NavigationBar和ToolBar的POP或PUSH消失问题
- 在ASP.NET Core微服务架构下使用数据库切分和扩展
- 前端精英你是什么样的呢
- 微软windows10易升_你可能不知道,微软系统升级最新版还可以这么简单!
- Flask 使用abort方法返回http错误码、http错误响应信息
- IDEA添加Mapper.xml文件模板
- 推荐61个免费最好软件
- 五子棋ai:极大极小搜索和α-β剪枝算法的思想和实现(qt和c++)(四)算杀模块的简单实现
- linux 导入fpx证书,金贡荣获神秘奖章,结果写着FPX全队慈父,网友点歌以父之名...
- Ubuntu下清除DNS缓存的方法
- http请求返回405 (Method Not Allowed)
- 记一次ajax sync为false 同步神坑bug
- Python爬取中原地产香港26281套在售二手房数据并分析
- vc调用matlab直方图,图像各向异性扩散算法(VC与Matlab版本实现)
- 机器学习笔记之——模型评估与改进之评估指标与评分
- UG NX12 同步建模:替换面
- 使用小赛看看软件浏览Dicom文件
热门文章
- Hyperledger Fabric教程(3)-- byfn.sh分析-生成通道所需交易和文件
- FISCO BCOS 区块链 学习开发步骤
- Linux学习(1)阿里云服务器及配置、使用xshell远程连接
- linux nfs async,Linux下NFS共享以及oracle rman挂载优化
- 设计模式之GOF23代理模式03
- html中img显示旋转,css如何实现图片的旋转展示效果(代码示例)
- java统计字符串数字出现次数_java实现统计字符串中大写字母,小写字母及数字出现次数的方法示例...
- win10系统如何解除端口占用
- 计算机网络-应用层与传输层
- Java 设计模式 之 工厂方法模式、抽象工厂模式