首先就是关于vb.net数据库方面的知识是极为欠缺的,这也告诉其他的同学们,这方面的知识应该仔仔细细看看。之前看vb.net视频的时候就认为:它应该和vb差不多,所以就没有理会,加上那个老师的口音那么浓重,所以总是怨天尤人,也为自己偷懒找了借口。现在想想,看完vb.net视频之后,数据库方面的知识就应该好好梳理一下,比较一下它和vb有哪些不同。希望大家不要为了完成任务而急功近利忽视这些整理的过程。这些知识可以参看我以前的博客,可能会对你有帮助。
其次就是关于面向对象的知识方面的欠缺。我们以前学习的知识大部分是面向过程的,虽然一开始都在激烈的讨论着面向对象的好处,但是真正接触到面向对象的时候理论和实际就分家了,仿佛丈二和尚摸不着头脑一般。总是想着用面向过程的思维来思考问题。关于这方面的问题我建议大家真正操作一番。接下来是我的做的机房收费系统登录功能的一段代码,可能中间还有不足之处,希望大家批评指出:
1、 登录界面的功能:
如果登录成功,则显示提示信息“登录成功”;如果未能登录成功,则显示提示信息“登录失败”
2、 三次架构的框架
3、 各层之间的引用关系:UI层引用BLL层和Entity层,BLL层引用DAL层和Entity层,DAL层引用Entity层
4、 下面是实现过程中的代码
(1)实体层代码设计
'声明user表里的属性 Public Class E_User Private e_UserID As String Public Property userID As String Get Return e_UserID End Get Set(ByVal value As String) e_UserID = value End Set End Property Private e_PWD As String Public Property PWD As String Get Return e_PWD End Get Set(ByVal value As String) e_PWD = value End Set End Property End Class
Public Class D_User '连接数据库 Dim sqlConnectStr As String = "server=WBX-PC;database=charge_sys;uid=sa;pwd=123;" '自定义检查参数 Function selectUserInfo(ByVal User As Entity.E_User) As Entity.E_User Dim sql As String = "select * from User_Info where UserID='" & User.userID & "'" '初始化具有查询文本和 SqlConnection 的 SqlCommand 类的新实例。 Dim sqlConnection1 As SqlConnection = New SqlConnection() sqlConnection1.ConnectionString = sqlConnectStr Dim cmd As SqlCommand = New SqlCommand() cmd.CommandText = sql cmd.Connection = sqlConnection1 Dim read As SqlDataReader Dim UserDataTable As New DataTable Dim User1 As New Entity.E_User Try '打开连接 sqlConnection1.Open() '返回一个数据集对象 read = cmd.ExecuteReader() UserDataTable.Load(read) User1.userID = UserDataTable.Rows(0)("userID") User1.PWD = UserDataTable.Rows(0)("PWD") Return User1 Catch ex As Exception User1.PWD = "" Return User1 Finally If Not IsNothing(sqlConnection1) Then sqlConnection1.Close() End If End Try End Function End Class(3)业务逻辑层
'业务处理,做出逻辑判断 Public Class B_Login Function SelectUIandEntity(ByVal User As Entity.E_User) As Boolean Dim DalUser As New DAL.D_User Dim EntityUser As New Entity.E_User EntityUser.userID = User.userID EntityUser = DalUser.selectUserInfo(EntityUser) '判断操作 If EntityUser.PWD.Trim() = User.PWD Then Return True Else Return False End If End Function End Class
Public Class frmLogin '单击确定按钮,判断是否登录成功 Private Sub btLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btLogin.Click Dim LoginUser As New Entity.E_User Dim Bcheck As New BLL.B_Login LoginUser.userID = txtID.Text() LoginUser.PWD = txtPw.Text() If Bcheck.SelectUIandEntity(LoginUser) Then MsgBox("登录成功") Else MsgBox("登录失败") End If End Sub '退出系统 Private Sub btCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btCancel.Click End End Sub End Class