机房收费系统 之 委托登录
来源:互联网 发布:高铭脱口秀 知乎 编辑:程序博客网 时间:2024/05/04 14:06
忘记了具体的时间,具体的地点应该是在511。老师提了这么一句“以后你们的代码里面都不能有调用,全部都有委托”。如果我没有记错的话,好像是这么说的......如果我记错了的话,也有可能是我听错了哈......
最近开始机房收费系统合作版,然后就想着能不能把委托这个东西加到咱们的机房中来,然后就在那里查资料啊,查资料!反正查了一天多......最后,功夫不负有心人,终于搞定了!
虽然是实现了功能,但是真的不确定自己这样做到底是正确的还是错误的!这个还有待老师和师哥师姐们给出宝贵的意见!
再看看新的B层:
最后看看新的U层:
最后看看我们的结果:
最近开始机房收费系统合作版,然后就想着能不能把委托这个东西加到咱们的机房中来,然后就在那里查资料啊,查资料!反正查了一天多......最后,功夫不负有心人,终于搞定了!
虽然是实现了功能,但是真的不确定自己这样做到底是正确的还是错误的!这个还有待老师和师哥师姐们给出宝贵的意见!
委托是什么我就不说的了,不懂的可以看看C# 之 委托,虽然写的不是特别的详细,但是看了也能了解个大概。现在就让我们来看看具体的代码实现:
我们熟悉的D层代码:
Imports System.Data.SqlClientPublic Class DAL Public Function Login(ByVal strUserID As String, ByVal strPassword As String) As Boolean '创建一个SqlConnection Dim conn As New SqlConnection("server=.;database=ChargeSystem;uid=sa;pwd=123456") '创建一个SqlCommand从数据库中查询该用户名和密码是否存在 Dim cmd As New SqlCommand("select count(*) from T_User where userID='" & strUserID & "' and password='" & strPassword & "'", conn) conn.Open() Dim count As Integer = cmd.ExecuteScalar() conn.Close() If count > 0 Then Return True '用户名和密码正确 Else Return False End If End FunctionEnd Class
再看看新的B层:
Public Class BLL '声明委托LoginEventHandler,此时委托所代表的方法有两个参数,返回值为布尔值 Public Delegate Function LoginEventHandler(ByVal strUserID As String, ByVal strPassword As String) As Boolean Public Function Login(ByVal strUserID As String, ByVal strPassword As String) As Boolean Dim dal As New DAL '将DAL类中的Login方法添加到委托loginEventHandler Dim loginEventHandler As LoginEventHandler = AddressOf dal.Login Dim flag As Boolean flag = loginEventHandler(strUserID, strPassword) Return flag End FunctionEnd Class
最后看看新的U层:
Public Class Form1 '声明委托LoginEventHandler,此时委托所代表的方法有两个参数,返回值为布尔值 Public Delegate Function LoginEventHandler(ByVal strUserID As String, ByVal strPassword As String) As Boolean Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnLogin.Click Dim bll As New BLL Dim loginEventHandler As LoginEventHandler Dim strUserID As String = txtUserID.Text.Trim() Dim strPassword As String = txtPassword.Text.Trim() Dim flag As Boolean '将DAL类中的Login方法添加到委托loginEventHandler loginEventHandler = AddressOf bll.Login flag = loginEventHandler(strUserID, strPassword) If flag = True Then MsgBox("终于登陆成功!") Else MsgBox("用户名或密码输入错误!") txtPassword.Text = "" txtUserID.Focus() txtUserID.SelectAll() End If End Sub Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click Me.Close() End SubEnd Class
最后看看我们的结果:
在VB.NET中事件不能用具有返回类型的委托类型来声明,这点和C#不一样!然后就是这一点点的区别就花费了我好多的精力!不过最后还是做出来了,真的非常的高兴!嘿嘿......
21 0
- 机房收费系统 之 委托登录
- 机房收费系统之登录
- 机房收费系统之登录
- 机房收费系统 之 登录BUG
- 七层登录之机房收费系统
- 机房收费系统之用户登录
- 【机房收费系统】登录
- 机房收费系统-登录
- 登录窗体--机房收费系统
- 机房收费系统—登录
- 第一次机房收费系统 “登录”
- 机房收费系统-登录窗体
- 机房收费系统重构之七层系统登录
- 机房收费系统重构之用户登录
- 机房收费系统 之 登录BUG (二)
- VB.NET版机房收费系统之七层登录
- 【机房收费系统】 之 收费模式
- 机房收费系统之临时收费金额
- zoj 3780 Paint the Grid Again
- 极限测试4 - 系统能创建的最大tcp连接数
- Filter 过滤器
- [BestCoder Round #6] hdu 4982 Goffi and Squary Partition(构造)
- StarUML 在不同文件间 复制/copy/拷贝 ,带有圈 M 的解决方案
- 机房收费系统 之 委托登录
- Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限
- filter
- linux守护进程编写
- 识别你的系统是32位还是64位, Linux文件和目录访问权限设置
- JS获取FILE表单中要上传的文件名
- break的用法
- ASP.NET MVC 部分视图
- 下一代IC芯片卡将加密提升安全性能