对三层的基本知识已经有了一定的了解和掌握,可是要想真正去灵活运用它还须要我们去实践,仅仅有经过亲自己主动手操作实现后才干理解得更加透彻。

首先我们须要建一张数据表,以我的为例,建一张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

三层实例--加入信息相关推荐

  1. 有史以来最简单的三层实例(C#)

    三层已经学了很久了,一直没有写博客是因为自己感觉对三层的理解还太肤浅,怕写的不对误导别人.当然就现在我的水平而言对于三层的理解还是不够深刻,但是我感觉不至于误导别人了,所以将我对于三层的一些理解写出来 ...

  2. WinForm高级控件实例--职员信息登记

    WinForm高级控件实例--职员信息登记 转载于:https://www.cnblogs.com/macT/p/9288092.html

  3. PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练

    相关文章: 1.快递单中抽取关键信息[一]----基于BiGRU+CR+预训练的词向量优化 2.快递单信息抽取[二]基于ERNIE1.0至ErnieGram + CRF预训练模型 3.快递单信息抽取[ ...

  4. AWS组件详解3——EC2之配置实例详细信息

    这是本系列文章的第三篇,上一篇EC2实例类型,请戳这里.作者 黄佳 在启动EC2的第三步中,会出现非常多的配置选项,比如说设定要启动的实例个数.实例是预留实例还是竞价实例(这将决定实例的具体价格).以 ...

  5. 【C#实践】三层实例:登录过程

    关于三层,看完一遍,想着开始敲七层,看着别人的代码敲都有点找不到,于是重新敲了一遍三层,收获很多! 首先,它没有模板,也不是一下子就完成的,它是有思路的,根据思路走,整个过程就是很自然而然的过程! D ...

  6. Vue指令练习实例-学生信息录入

    很好的一个可以感受Vue.js的MVVM模型,数据和模型双向绑定的实例练习. <!doctype html> <html lang="en"> <he ...

  7. mvc三层架构(用户信息管理系统)

    mvc三层架构(实战项目 用户信息管理系统) 一.三层架构 View 层:用于接收用户提交请求的代码. Service 层:系统的业务逻辑主要在这里完成. Dao 层:直接操作数据库的代码. 二.三层 ...

  8. 基于asp.net的三层架构美食信息在线分享网站mvc

    所谓色.香.味.意.型.养,世界上只有美食能同时满足人的六感,无人能抗拒美食的诱惑.而生活节奏越来越快的今天,美食对于人们的重要性愈加重要.此次设计所做的是一个关于美食信息网络在线分享的网站.此网站设 ...

  9. 服务器信息管理 实例,配置信息输出到syslog服务器示例

    配置不同模块和级别的日志分别输出到不同的syslog服务器中,同时配置备份syslog服务器,实现对信息的备份. 组网需求 运行中的Device会产生大量的信息,而Device本身的存储空间相对有限, ...

  10. 解决Eureka注册服务中实例info信息无法动态显示$project.artifactId$的问题

    1.问题描述 虽然在yml中配置了$开头$结尾的变量,但是实际展示时无法动态显示. 2.原始的配置 springcloud父工程中pom文件中的配置 <build><finalNam ...

最新文章

  1. linux 换行符_「linux」libevent demo详细分析(对比epoll)
  2. 亿级流量峰值没在怕,“缓存”技术来减压!
  3. MySQL复习资料(二)——MySQL-DDL语句
  4. navigationController的NavigationBar和ToolBar的POP或PUSH消失问题
  5. 在ASP.NET Core微服务架构下使用数据库切分和扩展
  6. 前端精英你是什么样的呢
  7. 微软windows10易升_你可能不知道,微软系统升级最新版还可以这么简单!
  8. Flask 使用abort方法返回http错误码、http错误响应信息
  9. IDEA添加Mapper.xml文件模板
  10. 推荐61个免费最好软件
  11. 五子棋ai:极大极小搜索和α-β剪枝算法的思想和实现(qt和c++)(四)算杀模块的简单实现
  12. linux 导入fpx证书,金贡荣获神秘奖章,结果写着FPX全队慈父,网友点歌以父之名...
  13. Ubuntu下清除DNS缓存的方法
  14. http请求返回405 (Method Not Allowed)
  15. 记一次ajax sync为false 同步神坑bug
  16. Python爬取中原地产香港26281套在售二手房数据并分析
  17. vc调用matlab直方图,图像各向异性扩散算法(VC与Matlab版本实现)
  18. 机器学习笔记之——模型评估与改进之评估指标与评分
  19. UG NX12 同步建模:替换面
  20. 使用小赛看看软件浏览Dicom文件

热门文章

  1. Hyperledger Fabric教程(3)-- byfn.sh分析-生成通道所需交易和文件
  2. FISCO BCOS 区块链 学习开发步骤
  3. Linux学习(1)阿里云服务器及配置、使用xshell远程连接
  4. linux nfs async,Linux下NFS共享以及oracle rman挂载优化
  5. 设计模式之GOF23代理模式03
  6. html中img显示旋转,css如何实现图片的旋转展示效果(代码示例)
  7. java统计字符串数字出现次数_java实现统计字符串中大写字母,小写字母及数字出现次数的方法示例...
  8. win10系统如何解除端口占用
  9. 计算机网络-应用层与传输层
  10. Java 设计模式 之 工厂方法模式、抽象工厂模式