三层登录窗体
2016-02-16 11:29
260 查看
经过几天的努力奋斗,三层登录窗体终于完成了,虽然历经风雨,但是经过小伙伴们的帮助,顺利的学习到了很多的东西。。
好了,这就是我这几天辛苦努力的结果,感觉还不错哦
登录窗体界面:
C#代码展示:
U层namespace LoginUI { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { string userName = txtUserName.Text.Trim(); string password = txtPassword.Text; Login.BLL.LoginManager mgr = new Login.BLL.LoginManager(); Login .Model .UserInfo user= mgr.UserLogin (userName, password); MessageBox.Show("登录用户:"+user .UserName ); } } }B层
namespace Login.BLL { public class LoginManager { public Login.Model.UserInfo UserLogin(string userName,string password) { Login.DAL.UserDAO uDao = new Login.DAL.UserDAO(); Login .Model .UserInfo user= uDao.SelectUser(userName, password); if (user != null)//login successfully { Login.DAL.ScoreDAO sDao = new Login.DAL.ScoreDAO(); sDao.UpdateScore(userName, 10); return user; } else { throw new Exception("登录失败"); } } } }D层
//添加一个DbUtil 类 用于链接数据库 namespace Login.DAL { class DbUtil { public static string ConnString = @"Server=192.168.24.193;Database=Login; User ID=sa;PWD=1"; } }<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
//定义一个UserADO类 namespace Login.DAL { public class UserDAO { public Login .Model .UserInfo SelectUser(string userName, string password ) { using (SqlConnection conn = new SqlConnection(DbUtil.ConnString)) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"SELECT ID,UserName,Password,Email FROM USERS WHERE UserName=@UserName AND Password=@Password"; cmd.CommandType = CommandType.Text ; cmd.Parameters.Add(new SqlParameter("@UserName", userName)); cmd.Parameters.Add(new SqlParameter("@Password", password)); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); Login.Model.UserInfo user = null; while (reader .Read ()) { if (user ==null ) { user = new Login.Model.UserInfo(); } user.ID = reader.GetInt32(0); user.UserName = reader.GetString(1); user.Password = reader.GetString(2); if (!reader .IsDBNull (3)) { user.Email = reader.GetString(3); } } return user; } } } }
//定义一个ScoreDAO类 namespace Login.DAL { public class ScoreDAO { public void UpdateScore(string userName,int value) { using (SqlConnection conn = new SqlConnection(DbUtil.ConnString)) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"INSERT INTO SCORES(UserName,Score) Values(@UserName,@Score)"; cmd.Parameters.Add(new SqlParameter("@UserName", userName)); cmd.Parameters.Add(new SqlParameter("@Score", value)); conn.Open(); cmd.ExecuteNonQuery(); } } } }实体层 Model
namespace Login.Model { public class UserInfo { public int ID { get; set; } public string UserName { get; set; } public string Password { get; set; } public string Email { get; set; } } }
vb.net代码展示:
U层Public Class Formdl Private Sub btnOk_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click '实例化传实体的对象userinfo Dim loginUser As New LoginEntity.UserInfo '实例化BLL层的对象Bcheck Dim Bcheck As New LoginBLL.LoginManager '将文本框中的字符串赋给实体对象,使实体对象能够带上参数 loginUser.ID = txtUserName.Text() loginUser.PWD = txtPassword.Text() If Bcheck.SelectUserEntity(loginUser) Then MsgBox("登录成功!") Else MsgBox("登陆不成功!") End If End Sub Private Sub btnCancel_Click(sender As System.Object, e As System.EventArgs) Handles btnCancel.Click End End Sub End ClassB层
Imports LoginEntity Imports LoginDAL.UserDAO Public Class LoginManager Dim DalUser As New LoginDAL.UserDAO() Dim EntityUser As New LoginEntity.UserInfo() '定义一个函数方法 SelectUserEntity 传递的参数为 实体层类型的变量 user 返回值为 一个实体 Function SelectUserEntity(ByVal user As LoginEntity.UserInfo) As Boolean EntityUser.ID = user.ID EntityUser = DalUser.SelectUser(EntityUser) If EntityUser.PWD = user.PWD Then Return True Else Return False End If End Function End ClassD层
Imports System.Data.SqlClient Imports LoginEntity Public Class UserDAO '数据库连接,将数据库连接定义为构造函数,当实例化 LoginDAL 的时候,自动完成数据库连接 Dim sqlConnectStr As String = "server=192.168.24.193;DataBase=Login;User ID=sa;PWD=1" Dim sqlConnection1 As SqlConnection = New SqlConnection(sqlConnectStr) '在数据库中查询数据,执行命令语句 Function SelectUser(ByVal user As LoginEntity.UserInfo) As LoginEntity.UserInfo '连接数据库 Dim sql As String = "select * from Users where ID= '" & user.ID & "'" Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnection1) '定义一个 SqlDataReader 类型的变量 reader Dim read As SqlDataReader Dim UserDateTable As New DataTable '实例化一个实体层的对象 userinfo Dim user1 As New LoginEntity.UserInfo sqlConnection1.Open() '由于cmd 对象的属性 EcecuteReader 返回之是一个DataReader,所以只能定义一个Datareader类型的变量来接收数据。 read = cmd.ExecuteReader UserDateTable.Load(read) user1.ID = UserDateTable.Rows(0)("UserName") user1.PWD = UserDateTable.Rows(0)("PassWord") 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实体层:
Public Class UserInfo '定义两个私有属性 Private UserID As String Private PassWord As String '定义可读属性,允许他们的类访问该属性 Public Property ID As String Get Return UserID End Get Set(value As String) UserID = value End Set End Property Public Property PWD As String Get Return PassWord End Get Set(value As String) PassWord = value End Set End Property End Class
好了,这就是我这几天辛苦努力的结果,感觉还不错哦
相关文章推荐
- Perl 中的正则表达式
- 欢迎使用CSDN-markdown编辑器
- 使用utl_http获取某个http页面内容
- xcode7卡慢问题解决方法
- C++网络编程总结
- 计算全缓冲的大小
- 使用《Playground》来调试代码
- 第十二章内存管理
- NPOI操作EXCEL----------NPOI基础01
- NPOI操作EXCEL----------NPOI基础01
- 执行StartExecution时, 报ActiveX component can't createobject错误
- 【Java EE 学习第21天 使用易宝支付接口实现java网上支付功能】
- Oracle之UTL_FILE 包用法详解
- js点击复选框全选或全不选
- android 打电话
- 初识mysql数据库
- Eclipse 点击 Run 自动生成 out 文件的错误
- Negative value (-100) passed to setFirstResult
- mysql 中 unix_timestamp和from_unixtime 时间戳函数
- Android实现竖着的滑动刻度尺效果,选择身高(竖向的)Android实现滑动刻度尺效果,选择身高体重和生日------浅谈Andorid开发中的MVP模式