VB.NET版+三层实现登陆
三层已经学了一些时间了,開始认为自己能够用C#敲代码了,就用C#写了一个实现登陆的,真正再用在机房中。还是认为非常吃力的,所以。决定用vb.net敲了。以下是我用vb.net实现的登陆。能够给大家做一些參考。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1bXV4aWEwOTIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这是构架的三层
数据库中的表T_User_DAL:UserI。Level,Password,Head,computer
首先看一下
Entity层:
Public Class UserInfoEntity
#Region "定义变量"
Private _userID As String
Private _level As String
Private _Head As String
Private _password As String
#End Region
Public Property UserID() As String '将T_User_DAL表中的每个实体都传上去,实体是依据表来建的,不是功能
Get
Return _userID
End Get
Set(value As String)
_userID = value
End Set
End Property
Public Property Level() As String
Get
Return _level
End Get
Set(ByVal value As String)
_level = value
End Set
End Property
Public Property Head() As String
Get
Return _Head
End Get
Set(value As String)
_Head = value
End Set
End Property
Public Property Password() As String
Get
Return _password
End Get
Set(value As String)
_password = value
End Set
End Property End Class
DAL层:
为了可以减少耦合一定要将连接字符串拿出来。不要每个DAL中都写一边。
Imports System.Data
Imports System.Data.SqlClient
Public Class SqlUtil
Public Shared Function connstring() As String
'connstring = "Server=192.168.24.183;Database=ReconsitutionCharge_sys;User ID=sa;Password=123456" ‘会出现无法识别userid的错误
connstring = "Server=mx; Database=ReconsitutionCharge_sys; User ID=sa; Password=123456" '连接SQL的字符串
End Function End Class
T_User_dal表DAL层代码:
Imports System.Data.SqlClient
Imports System.Data
Public Class UserDAL
Public Function SelectUser(ByVal user As Entity.UserInfoEntity) As Entity.UserInfoEntity
Dim conn As New SqlConnection '定义连接打开数据库
Dim cmd As New SqlCommand '定义数据库命令
conn = New SqlConnection(SqlUtil.connstring()) '实例化SQLUntil中返回的字符串
cmd.Connection = conn cmd.CommandText = "Select * From T_User_DAL Where UserID=@UserID and Password=@Password" '存储过程 cmd.Parameters.Add(New SqlParameter("@UserID", user.UserID)) '赋值,传參
cmd.Parameters.Add(New SqlParameter("@Password", user.Password))
cmd.CommandType = CommandType.Text 'CommandText 属性设置为存储过程的名称。当调用 Execute 方法之中的一个时,该命令将运行此存储过程
conn.Open() '打开连接 Dim reader As SqlClient.SqlDataReader '读取数据库中的表
reader = cmd.ExecuteReader() Dim users As New Entity.UserInfoEntity '实例化实体 While (reader.Read())
'If users Is Nothing Then
' user = New Entity.UserInfoEntity
'End If
users.UserID = reader.GetString(reader.GetOrdinal("UserID"))
users.Password = reader.GetString(reader.GetOrdinal("Password"))
End While
conn.Close()
Return users
End Function
End Class
BLL层:
Public Class LoginBLL
Function UserLogin(ByVal user As Entity.UserInfoEntity) As Entity.UserInfoEntity
Dim uDAL As New DAL.UserDAL '实例化了DAL中的UserDAL
Dim users As New Entity.UserInfoEntity '实例化了Entity层信息表 users = uDAL.SelectUser(user) 'selectUser是返回一个Entity类的,给它赋值user
Return users '返回users实体
End Function End Class
UI层:
界面设计:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1bXV4aWEwOTIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Dim mgr As New BLL.LoginBLL '实例业务层
Dim user As New Entity.UserInfoEntity '实例实体
Dim users As Entity.UserInfoEntity '接收实体,用于接收UserLogin()返回的数据类型,假设没有New就不是实例化 user.UserID = txtUserID.Text.Trim() '给实体层传入值
user.Password = TxtPassword.Text.Trim()
If txtUserID.Text = "" Then '推断输入是否正确
MsgBox("username不能为空!")
Return
End If If TxtPassword.Text = "" Then
MsgBox("password不能为空!")
Return
End If Try 'users接收实体
users = mgr.UserLogin(user) If (users.UserID Is Nothing And users.Password Is Nothing) Then '假设users不为空。则登陆成功!
MsgBox("登陆失败,username和password不匹配")
Return
Else
MsgBox("登陆成功。登陆用户:" + user.UserID)
End If
Catch ex As Exception
MsgBox(ex.Message())
End Try
End Sub
End Class
VB.NET版+三层实现登陆的更多相关文章
- 三层登录——VB.NET版
		
前言 由于下面的机房收费系统重构自己要用VB.NET进行重构,所以在敲三层登录的时候,实践了一份C#版三层登录,接着就是VB.NET版的三层登录.话说还有七层登录,一下子感觉三层又矮小了.万丈高楼平地 ...
 - 三层——vb.net版
		
经过不懈的努力,我的vb.net 版的三层登陆终于实现了.下面将我的成果向大家展示一下. 原则 vb.net的三层登陆跟C#的三层登陆的思想是一样的都是将系统分层--U层只负责与用户 ...
 - VB.NET版机房收费系统---导出Excel表格
		
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...
 - VB.NET版机房收费系统---异常处理
		
异常处理,英文名为Exceptional Handling, 那时年少,还记得那年一起学习过的VB6.0的时候,常常使用ONError的错误语句.与传统VB6.0中的OnError语句相比.NET平台 ...
 - [转]C#三层架构登陆实例
		
很早之前,就听说过三层结构了.当时只知道 三层结构 是把 系统的 界面 跟 数据库操作等不相关的程序分别开来.原来这么简单的实现,确实传说中的 三层结构啊. 首先,先来看一下是哪三层.表示层(UI, ...
 - VB.net版机房收费系统——结账功能实现(调错与优化)
		
调错部分 上一篇博客<VB.net版机房收费系统--结账功能实现(代码部分>说的是结账功能的实现,亮出了代码.是在为这篇博客做铺垫.尽管结账功能代码是借鉴的巨人的博客.可是自己比着葫芦画瓢 ...
 - 三层架构实例 VB.NET版
		
三层实例 首先发现感慨,对于三成这块,用到都是一些面向对象的特征,尤其是对象的实例化.如果你不是很注意的话,那么,你就会一头雾水,就像我一样,慢慢的雾里看花,最后也是走出来的,不过用的事件是相当的. ...
 - 三层登录实例VB.NET版详解---理论加实战篇
		
层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠:重复:层峦叠嶂|层出不穷.最后-量词,用于可以分出层次的事物,女孩儿强烈的第六感,三层中的层一定是 ...
 - 三层登录实例VB.NET版具体解释---理论加实战篇
		
层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠.反复:层峦叠嶂|层出不穷.最后-量词,用于能够分出层次的事物.女孩儿强烈的第六感,三层中的层一定是 ...
 
随机推荐
- WordPress基础:在浏览站点时顶部显示工具栏显示隐藏
			
然后在底部加入: <?php wp_footer();?>
 - TextView字体,行距,html格式,超链接,对大长度的设定
			
颜色,大小 <span style="font-size:18px;"> <!-- 设置字体的大小,推荐用sp做单位:字体颜色以#开头 --> <Te ...
 - java通过Stream对list集合分组
			
java通过Stream对list集合分组 现在有一个List集合,想对该集合中的数据分组处理,想到java8中的stream,就搞来试试,非常给力!例子如下 1 2 3 4 5 6 7 8 9 10 ...
 - Leetcode刷题记录:计算复数乘法
			
题目要求 计算两个复数的乘积. 参考题解 这道题感觉很简单,主要是对复数的表达式进行解析,然后套用公式,输出结果就可以了. class Solution: def complexNumberMulti ...
 - 将Linux默认的OpenJDK替换为Oracle JDK
			
在使用Logstash安装插件的时候,发生了一个错误,如下: ERROR: Something went wrong when installing logstash-input-jdbc, mess ...
 - Svg.js 图片加载
			
一.SVG.Image 1.创建和修改图片 var draw = SVG('svg1').size(300, 300); //SVG.Image 加载图片文件 var image = draw.ima ...
 - sugar crm
			
百度百科:http://baike.baidu.com/link?url=7SnriwrF-4LcRfXctBbZjLc-UEUqWl3b0YR004pGFk4SJ1qMU9TMj37yFmHRsUS ...
 - 初识网络进程通信<Heart.X.Raid>
			
可以这样说:我们在网络上只做一件事,利用各种软件没完没了的相互通信. 对于单机系统而言,进程在系统中有自己唯一的进程号.但在网络环境下,各主机独立分配的进程号不能唯一标识该进程.例如,主机A赋于某进程 ...
 - 数据库实例: STOREBOOK  >  用户  >  编辑 用户: SYSTEM
			
ylbtech-Oracle:数据库实例: STOREBOOK > 用户 > 编辑 用户: SYSTEM 编辑 用户: SYSTEM 1. 一般信息返回顶部 1.1, 1.2, 2 ...
 - scrapy框架系列 (4) Scrapy Shell
			
Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据 ...