加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

三层登录——vb.net

发布时间:2020-12-17 07:41:35 所属栏目:百科 来源:网络整理
导读:结束设计模式,紧接着就是vb.net的视频,但是没怎么理解,然后就是三层登录了,因为设计模式是一个一个敲的,对C#语言稍微懂一点点,但是vb.net没有实战过,一点思路也没用,前两天用c#语言实现了三层的登录,想试着用vb.net实现,但是不知道怎样分层,查了

结束设计模式,紧接着就是vb.net的视频,但是没怎么理解,然后就是三层登录了,因为设计模式是一个一个敲的,对C#语言稍微懂一点点,但是vb.net没有实战过,一点思路也没用,前两天用c#语言实现了三层的登录,想试着用vb.net实现,但是不知道怎样分层,查了很多博客,搜了一些资料终于也实现了,其实vb.net和c#也超不多,就是照猫画虎,依照葫芦画瓢,感觉vb.net在vb和c#直接,既有和vb相似的地方也有和C#一样之处。

下面是三层登录窗体vb.net的实现版。

【UI层

[plain] view plain copy
  1. <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">PrivateSubbtnOK_Click(senderAsObject,eAsEventArgs)HandlesbtnOK.Click
  2. Try
  3. DimUserAsNewLogin.Entity.UserInfo'定义一个新的实体,用来存放用户名和密
  4. <spanstyle="font-family:KaiTi_GB2312;"></span>User.UserName=txtUserName.Text.Trim'存放用户名
  5. User.Password=txtPassword.Text'密码
  6. DimmgrAsNewLogin.BLL.LoginManager'实例化新的BLL,调用BLL层类LoginManager中的方法UserLogin
  7. User=mgr.UserLogin(User)
  8. CatchexAsException
  9. MessageBox.Show(ex.Message.ToString())'出错时系统提示
  10. EndTry
  11. EndSub
  12. PrivateSubbtnCancel_Click(senderAsObject,eAsEventArgs)HandlesbtnCancel.Click'退出
  13. Me.Close()
  14. EndSub</span>

【BLL层】

copy
<spanstyle="font-family:KaiTi_GB2312;font-size:18px;">PublicClassLoginManager
  • PublicFunctionUserLogin(ByValUserAsLogin.Entity.UserInfo)AsLogin.Entity.UserInfo
  • DimuDaoAsNewLogin.DAL.UserDAO'定义新的DAO
  • DimeUser1AsLogin.Entity.UserInfo'定义实体层
  • eUser1=uDao.SelectUser(User)'调用DAO中的方法SelectUser
  • IfIsNothing(eUser1.UserName)Then
  • ThrowNewException("登录失败,请检查输入的用户名和密码")
  • Else
  • MsgBox("登录成功,正在进入系统……")
  • ReturneUser1
  • EndIf
  • EndFunction
  • EndClass</span>
  • 【DAL层】

    copy
    <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">PublicClassUserDAO
  • '创建数据连接
  • PublicconnAsNewSqlConnection("Server=LFH;Database=LoginSanCeng;UserID=sa;Password=1")
  • PublicFunctionSelectUser(ByValUserAsUserInfo)AsEntity.UserInfo
  • DimreaderAsSqlDataReader'定义reader,从SQLServer数据库读取行的只进流的方式
  • DimeUserAsNewLogin.Entity.UserInfo'定义实体
  • 'DimsqlAsString="SelectUserName,PasswordfromUserwhereUserName=@UserNameandPassword=@Password"'查询语句
  • DimsqlAsString="SelectUserName,Passwordfrom[dbo].[User]whereUserName=@UserNameandPassword=@Password"'查询语句
  • DimcmdAsNewSqlCommand(sql,conn)'数据库的执行语句
  • cmd.CommandText=sql
  • cmd.CommandType=CommandType.Text
  • cmd.Parameters.Add(NewSqlParameter("@UserName",User.UserName))
  • cmd.Parameters.Add(NewSqlParameter("@Password",User.Password))'出现问题???只传入一个参数,上接UI层的问题
  • conn.Open()
  • reader=cmd.ExecuteReader()
  • Whilereader.Read()
  • eUser.UserName=reader.GetString(0)
  • eUser.Password=reader.GetString(1)
  • EndWhile
  • <spanstyle="font-family:KaiTi_GB2312;"></span>ReturneUser
  • conn.Close()
  • EndFunction
  • EndClass
  • </span>
  • 【实体层】

    copy
    <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">Private_usernameAsString'用户名字段
  • PublicPropertyUserNameAsString'通过字段赋值属性
  • Get‘读取数据
  • Return_username
  • EndGet
  • Set(valueAsString)’修改数据
  • _username=value
  • EndSet
  • EndProperty
  • Private_passwordAsString'密码
  • PublicPropertyPasswordAsString
  • Get
  • Return_password
  • Set(valueAsString)
  • _password=value
  • EndProperty</span>
  • 调试中的遇见的问题

    1、传参数的问题

    copy
    <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">'DimUser2AsNewLogin.Entity.UserInfo’不可以定义两个,分别传值,因为最后是两个参数的用户名和密码
  • 'DimUser3AsNewLogin.Entity.UserInfo‘这样的话User2只有一个参数用户名
  • 'User2.UserName=txtUserName.Text.Trim
  • 'User3.Password=txtPassword.Text
  • 'DimmgrAsNewLogin.BLL.LoginManager
  • 'User3=mgr.UserLogin(User2)
  • 'DimsqlAsString="SelectUserName,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> 'cmd.Parameters.Add(NewSqlParameter("@UserName",User.UserName))
  • 'cmd.Parameters.Add(NewSqlParameter("@Password",User.Password))
  • </span>
  • 原因:定义两个实体分别赋值,传进去的只是一个User2,但是最后需要两个UserName和Password,所以导致出现问题,因此只需定义一个实体通过属性赋值就好了

    2msgbox使用问题


    copy
    <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">'MsgBox("登录成功,正在进入系统……""恭喜")'用法错误</span>
    msgbox使用

    有三个参数

    Prompt As Object——必选,显示的内容

    Buttons As MsgBoxStyle——可选,显示的按钮,默认为0

    Title As Object——可选,弹出框的标题


    许多事情在没有开始时可能是我们想的太难,只要大胆去尝试,一切都可以解决,需要学习的还有很多,加油吧!

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读