走在机房重构的路上之登录窗体的实现
来源:互联网 发布:js 设置div可见 编辑:程序博客网 时间:2024/05/17 04:06
前几天,登录窗体的功能终于实现了。现在将我的收获总结在这里,希望能对大家有所帮助。要实现成功登录就一定要窗体和数据库,那么先说数据库。
一、数据库的建立
1.命名
上次的机房收费系统中,数据库建的是一塌糊涂,数据表之间的重复问题,逻辑错误问题,甚至学生卡上的余额就有好几个表。而且表名的命名也存在很大的问题,在这里我就不把我第一遍的数据库放在这里碍大家眼了,直接将我这次的图附上。
这里用到的命名原则有:
·数据库名采用首字母大写,避免与系统保留的冲突;
·数据表适用T_表名,表明采用首字母大写。
·表的字段:第一个首字母小写,后面的单词或者拼音,采用第一个首字母大写,如下图:
二、登录窗体的实现
应用三层以后,登录窗体包括BLL层、UI层、DAL层和一个实体(Model)层。
首先看BLL层的代码:
<span style="white-space:pre"></span><pre name="code" class="csharp">Public Class LoginBLL Public Shared Function isnotnullLoginBll(ByVal UI_testUser As Model.LoginModel) As String Dim BLL_testUser As Model.LoginModel '表明BLL对DAL的引用 Dim DAL_user As New DAL.LoginDAL '表明对Model的引用 '将Bll中user的“查询用户”的方法中查询出来的用户名赋值给DAL_testUser,也可以这样理解:用DAL_testUser来表示这一堆称呼 BLL_testUser = DAL_user.LoginDALSelectUser(UI_testUser.userName) '判断返回值 If UI_testUser.passWord = BLL_testUser.passWord Then '判断如果输入的密码和从数据库中查询出来的密码相同,则返回值为TRUE Return True Else Return False End If End FunctionEnd Class
DAL层 :
Imports System.Data.SqlClient '命名空间Public Class LoginDAL Dim LoginConn As String = "server =YSC-pc;database=ChargeSystem;user id =sa;password=123456" Dim conn As New SqlConnection(LoginConn) '定义一个方法,名为LoginDALSelectUser,其中UserName以字符串的形式传递给这个方法 Public Function LoginDALSelectUser(ByVal UserName As String) conn.Open() '定义于数据库之间的连接 Dim LoginCmm As String = "select userID,passWord ,level from T_Users " Dim cmd As New SqlCommand(LoginCmm, conn) '建立好连接后,开始读取数据库中的内容 Dim LoginReader As SqlDataReader LoginReader = cmd.ExecuteReader() '表明对Model的引用关系,将Model的LoginModel实例化出一个叫做testUser的对象 Dim testUser As New Model.LoginModel If LoginReader.Read() Then 'GetFieldValue 方法是从对应的数据表中查询出第一个字段的值,作为字符串的形式付给testUser的userName testUser.userName = LoginReader.GetFieldValue(Of String)(0) testUser.passWord = Trim(LoginReader.GetFieldValue(Of String)(1)) '完成操作后,将testUser返回 Return testUser LoginReader.Close() conn.Close() End If End FunctionEnd Class
最后是Model层:
Public Class LoginModel '实体层中都将数据表中的字段作为一个方法;也就是说,用到数据表中的几个字段,这里就要有至少几个以字段命名的方法 Private MuserName As String Public Property userName() As String Get Return MuserName End Get Set(value As String) MuserName = value End Set End Property Private MpassWord As String Public Property passWord() As String Get Return MpassWord End Get Set(value As String) MpassWord = value End Set End PropertyEnd Class
代码实现虽然还容易,但其中要注意一下几点:
1.层之间实现引用,否则会出现如下的错误:
这是由于BLL层没有对DAL引用,就会出现这个错误的提示。
2.命名空间造成的错误提示:
解决方案是:定义一个命名空间,实现下图的效果:
这些都是一些简单地问题,但要引起大家的注意,毕竟细节决定成败。
- 走在机房重构的路上之登录窗体的实现
- 走在机房重构的路上之组合查询
- 走在机房重构的路上之dt表头
- 走在机房重构的路上之总结篇
- 走在机房重构的路上之七层(一)
- 走在机房重构的路上之七层(二)
- 走在机房重构的路上之泛型集合
- 机房重构之窗体登录
- 走在可持续发展之路上的银行
- 重构之美-走在Web标准化设计的路上[对HTML/XHTML/XML/XSL的一些认识]
- 走在晒太阳的路上
- 走在设计的路上
- 走在考研的路上
- 走在路上想到的
- 走在下班的路上
- 走在创业的路上
- 走在回家的路上
- 走在代码的路上
- Android - 开发实例(13):记录一个 .gitignore 文件
- ZOJ-1025
- 车牌检测(定位)
- Qt学习之路_1(安装及首次体验)
- 百度语音识别REST API使用方法(含C++代码)——不需要集成SDK的方法
- 走在机房重构的路上之登录窗体的实现
- apache 优化配置 prefork模式
- 【VB.NET】——若水归海
- Javascript之url传值中文乱码解决方法
- Qt学习之路_2(VS下Qt设计师文件的使用)
- 2014年BN Nook HD/HD+ CM11新手入门+刷机教程,编译自xda,仅供参考
- SQL不同服务器数据库之间的数据操作整理(完整版)
- Linux IO工具 iotop的替代品iopp
- 后台建设的一点感想