三层登录——VB.NET版
前言
由于下面的机房收费系统重构自己要用VB.NET进行重构,所以在敲三层登录的时候,实践了一份C#版三层登录,接着就是VB.NET版的三层登录。话说还有七层登录,一下子感觉三层又矮小了。万丈高楼平地起,都得从最底层走起~
VB.NET版三层登录
Entity实体层
<span style="font-family:KaiTi_GB2312;font-size:18px;">Public Class UserInfo
'定义两个私有属性
Private UserID As String
Private Password As String '定义属性过程,通过属性过程,允许其他类访问
Public Property ID As String Get
Return UserID
End Get Set(value As String)
UserID = value
End Set
End Property Public Property PWD As String Get
Return Password
End Get Set(value As String)
Password = value
End Set
End Property
End Class</span>
U层
<span style="font-family:KaiTi_GB2312;font-size:18px;">Public Class FrmLogin
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
End
End Sub
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
'实例化传实体对象;
Dim LoginUser As New Login.Model.UserInfo '用来接收用户的登录名和密码;
'实例化B层对象
Dim Bcheck As New Login.BLL.LoginManager
'将文本框中的字符串送给实体对象login.user使实体对象能够带上参数;
LoginUser.ID = txtUsername.Text()
LoginUser.PWD = txtPassword.Text()
If Bcheck.selectUIandModel(LoginUser) Then
MsgBox("恭喜你,成功了!Amazing")
Else
MsgBox("这也太笨了吧,连这个都做不好,怎么谈是精英?")
End If
End Sub
End Class</span>
B层
<span style="font-family:KaiTi_GB2312;font-size:18px;">Imports Login.Model
Imports Login.DAL.UserDAO Public Class LoginManager
'B层业务处理逻辑:承接U层的参数和传递到D层;
Function selectUIandModel(ByVal user As Login.Model.UserInfo) As Boolean Dim DAOuser As New Login.DAL.UserDAO '实例化D层的UserDAO类
Dim Moderuser As New Login.Model.UserInfo '实例化实体层UserInfo类 Moderuser.ID = user.ID
Moderuser = DAOuser.selectUserInfoFormUserInfoTable(Moderuser) '引用了DAL层的方法 If Moderuser.PWD = user.PWD Then
Return True
Else
Return False
End If
End Function
End Class</span>
D层
<span style="font-family:KaiTi_GB2312;font-size:18px;">Imports System.Data.SqlClient
Imports Login.Model Public Class UserDAO
'server是服务器的名称,可以是local,IP地址,计算机名称;
'database是数据库的名称;
'userid是登录的用户名;
'pwd是登录的密码;
Dim sqlConnectStr As String = "server =ZLT;database=Login;uid=sa;pwd=123" '下面可以用windows身份验证登录;
'Dim sqlConnectStr1 As String = "server=ZLT;database=Login;integrated Security=true" Dim sqlConnect1 As SqlConnection = New SqlConnection(sqlConnectStr) Function selectUserInfoFormUserInfoTable(ByVal user As Login.Model.UserInfo) As Login.Model.UserInfo
Dim sql As String = "select * from Users where Username='" & user.ID & "'"
Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnect1) '定义sqlcommand对象; Dim read As SqlDataReader '定义sqldatareader对象; Dim UserDataTable As New DataTable '定义一个Datatable对象;
Dim user1 As New Login.Model.UserInfo Try
sqlConnect1.Open()
read = cmd.ExecuteReader
UserDataTable.Load(read)
user1.ID = UserDataTable.Rows(0)("Username")
user1.PWD = UserDataTable.Rows(0)("Password")
Return user1 Catch ex As Exception
user1.PWD = ""
Return user1
Finally
If Not IsNothing(sqlConnect1) Then
sqlConnect1.Close()
End If
End Try
End Function
End Class</span>
小结
1、人总得学会长大,三层也需要不断的创新;
2、万变不离其宗,变是永远不变的。
感谢您的宝贵时间~~~
三层登录——VB.NET版的更多相关文章
- 七层登录——VB.NET版
敲完三层后,感觉还是对三层架构没有那么亲切,和小伙伴交流后,他们说多多敲几遍,就懂了,其实就是那么几条线,所以:不管会不会,先去做吧! 下面是关于七层的包图: 我的解决方案: 代码部分: U层: &l ...
- 三层登录实例VB.NET版详解---理论加实战篇
层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠:重复:层峦叠嶂|层出不穷.最后-量词,用于可以分出层次的事物,女孩儿强烈的第六感,三层中的层一定是 ...
- 三层登录实例VB.NET版具体解释---理论加实战篇
层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠.反复:层峦叠嶂|层出不穷.最后-量词,用于能够分出层次的事物.女孩儿强烈的第六感,三层中的层一定是 ...
- 三层登录——C#版
前言 前期了解三层架构主要是由UI层.BLL层和DAL层三部分构成.看到大牛们都采用三层的思想实现了登录,本菜鸟暗暗地站在了他们的肩膀上. 自己理解 对于三层自己的理解是:就像我们对一个大型的公司去找 ...
- 三层——vb.net版
经过不懈的努力,我的vb.net 版的三层登陆终于实现了.下面将我的成果向大家展示一下. 原则 vb.net的三层登陆跟C#的三层登陆的思想是一样的都是将系统分层--U层只负责与用户 ...
- 第三方登录插件.NET版XY.OAuth-CSharp
XY.OAuth-CSharp GitHub:XY.OAuth-CSharp OSChina:XY.OAuth-CSharp 第三方登录插件.NET版 使用 首先,从NuGet上安装"XY. ...
- Java基础知识强化之IO流笔记56:IO流练习之 登录注册IO版
1. 登录注册IO版的Java项目框架,如下: 2. 具体代码实现: (1)User.java(cn.itcast.game): package cn.itcast.pojo; /** * 这是用户 ...
- VB.NET版机房收费系统---导出Excel表格
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...
- VB.NET版机房收费系统---异常处理
异常处理,英文名为Exceptional Handling, 那时年少,还记得那年一起学习过的VB6.0的时候,常常使用ONError的错误语句.与传统VB6.0中的OnError语句相比.NET平台 ...
随机推荐
- Druid:一个用于大数据实时处理的开源分布式系统——大数据实时查询和分析的高容错、高性能开源分布式系统
转自:http://www.36dsj.com/archives/28590 Druid 是一个用于大数据实时查询和分析的高容错.高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分 ...
- 简单使用XStream
Stream1.什么作用 *可以把JavaBean转换为(序列化为)xml2.XStream的jar *核心jar:xstream-1.4.7.jar *必须依赖包:xpp3_min-1.1.4c(X ...
- hihocoder-1285 智力竞赛(区间dp)
智力竞赛 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi.小Ho还有被小Hi强拉来的小Z,准备组队参加一个智力竞赛.竞赛采用过关制,共计N个关卡.在第i个关卡中,小 ...
- leetcode 34 Search for a Range(二分法)
Search for a Range Given a sorted array of integers, find the starting and ending position of a give ...
- linux命令学习笔记(9):touch 命令
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. .命令格式: touch [选项]... 文件... .命令参数: -a 或--t ...
- raspi-config Expand root partition to fill SD card 原理
/********************************************************************************** * raspi-config E ...
- pthread_cond_wait()用法分析
很久没看APUE,今天一位朋友问道关于一个mutex的问题,又翻到了以前讨论过的东西,为了不让自己忘记,把曾经的东西总结一下. 先大体看下网上很多地方都有的关于pthread_cond_wait()的 ...
- Gym 101142G : Gangsters in Central City(DFS序+LCA+set)
题意:现在有一棵树,1号节点是水源,叶子节点是村庄,现在有些怪兽会占领一些村庄(即只占领叶子节点),现在要割去一些边,使得怪兽到不了水源.给出怪兽占领和离开的情况,现在要割每次回答最小的割,使得怪兽不 ...
- 【Facebook】等差子序列个数
题目: 给定一整数数列,问数列有多少个子序列是等差数列. 即对于包含N个数的数列A,A(0),A(1),……,A(N-1),有多少组(P(0),P(1),……,P(k))满足0<=P(0)< ...
- BZOJ1113:[POI2008]PLA
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id ...