.NET版三层登录
来源:互联网 发布:赛维网络面试 编辑:程序博客网 时间:2024/05/16 07:02
看着视频敲了一遍登录的例子,好像只是知道了三层里有D层、B层、U层,每层都是相互独立的,然后将数据逐层的传递。但是具体是怎么实现的,还是有点蒙……
在敲.NET版三层登录之前参考了很多人的博客,这才慢慢的下手,敲上一遍,就觉得有清楚了很多……
首先,建立以下的Windows应用程序以及类库:
实体类(Model)代码:
<span style="font-size:18px;">Public Class UserInfo Private _username As String 'Private _ID As Decimal 'Public Property ID As Decimal ' Get ' Return _ID ' End Get ' Set(value As Decimal) ' _ID = value ' End Set 'End Property Public Property UserName As String Get Return _username End Get Set(ByVal value As String) _username = value End Set End Property Private _pwd As String Public Property Pwd As String Get Return _pwd End Get Set(value As String) _pwd = value End Set End PropertyEnd Class</span>
D层代码:(引用model实体类)
<span style="font-size:18px;">'引用命名空间Imports System.DataImports System.Data.SqlClientImports Login.Model'Imports LoginDALPublic Class UserDAO '连接数据库 'Dim sqlConnectStr As String = "sever=YU;database=Login;User ID =sa;Password=123456" 'Dim sqlConnection1 As SqlConnection = New SqlConnection(sqlConnectStr) Public conn As New SqlConnection("server=YU;database=Login;User ID =sa;Password=123456") Public Function SelectUser(ByVal UserDAO As Login.Model.UserInfo) As Login.Model.UserInfo '传递实体参数UserInfo而不是id,name,这样也方便对实体中的参数进行调用 Dim reader As SqlDataReader '定义SqlDataReader对象 Dim eUser As New Login.Model.UserInfo Dim sql As String = "select UserName,Password FROM Users WHERE UserName=@username and Password=@password" Dim cmd As New SqlCommand(sql, conn) '定义sqlcommand对象 cmd.CommandText = sql cmd.CommandType = CommandType.Text cmd.Parameters.Add(New SqlParameter("@username", UserDAO.UserName)) cmd.Parameters.Add(New SqlParameter("@password", UserDAO.Pwd)) conn.Open() reader = cmd.ExecuteReader While reader.Read() eUser.UserName = reader.GetString(0) eUser.Pwd = reader.GetString(1) End While Return UserDAO reader.Close() End FunctionEnd Class</span>
B层代码:(引用D层和model实体类)
<span style="font-size:18px;">Imports Login.DALPublic Class LoginManager Public Function UserLogin(ByVal UserDAO As Login.Model.UserInfo) As Login.Model.UserInfo Dim uDao As New Login.DAL.UserDAO Dim eUser1 As New Login.Model.UserInfo eUser1 = uDao.SelectUser(UserDAO) '将数据传给D层 '判断 If IsNothing(eUser1.UserName) Then Throw New Exception("登录失败,请验证登录名和密码!") Else MsgBox("登录成功!") Return eUser1 End If End FunctionEnd Class</span>
U层代码:(引用model实体类和B层)
<span style="font-size:18px;">Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnOK.Click Try Dim eUser2 As New Login.Model.UserInfo Dim eUser3 As New Login.Model.UserInfo eUser2.UserName = txtUserName.Text.Trim '将U层数据传给实体 eUser2.Pwd = txtPassword.Text Dim mgr As New Login.BLL.LoginManager '将数据传递给B层 eUser3 = mgr.UserLogin(eUser2) Catch ex As Exception MessageBox.Show(ex.Message.ToString()) End Try End Sub Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Me.Close() End SubEnd Class</span>
三层的特点是:U层、B层、D层都引用了实体类,但是实体类却不知道三层的存在。U层将数据传递给B层,B层进行处理,之后传递给D层,三层之间相互独立,如果哪一层发生变化,不会影响其他的层。总而言之:U层只负责显示和采集用户的信息和操作,B层只负责处理业务逻辑,D层只负责提供基本的数据访问。
0 0
- .NET版三层登录
- vb.net版三层登录
- VB.NET版“三层登录”实例
- VB.NET版三层登录实例
- VB.NET版三层登录小例子
- 三层登录实例(VB.NET版)
- .NET版三层登录问题集锦
- VB.NET版三层登录实例
- 三层登录——VB.NET版
- 【三层】VB.net版登录实例
- VB.NET 版三层登录的实现
- VB.net三层登录
- VB.Net 三层登录实例
- VB.NET三层登录demo
- VB.net三层登录实现
- 三层登录VB.NET实现
- 三层架构实现登录——VB.NET版
- VB.net版机房收费系统——三层登录
- 天声人語 20150517
- Http 和TCP的关系,TCP长连接和短连接有什么区别?
- c++返回字符串
- MFC学习(16)对于ACCESS数据库的时间查询
- 点击导航栏列表自动返回第一个cell,及顶部
- .NET版三层登录
- linux常用命令
- 模拟退火算法
- 设计模式之 - 单例模式
- c++用链表实现一元多项方程式
- eclipse工具栏不见了怎么办
- linux下使用nohup
- java集合框架
- gem5三级缓存配置,其中L1和L2为cpu独享