C#版机房重构登录(不完整版)
来源:互联网 发布:淘宝收藏宝贝送优惠券 编辑:程序博客网 时间:2024/06/10 22:30
傻傻的开始了机房重构,先开始一点思路都没有,现在虽然说弄出了一个窗体,但是还是傻傻的,由于咱们看过了三层视频,所以说登录应该是没有什么问题的,但是在期间我还是浪费了很多的时间去理解,现在总算弄出一个雏形来了,很开心,下面小编和小伙伴们分享一下我的登录吧。
页面
代码
B层
public Machine.Model.Users UserLogin(string userName, string passWord) { Machine.DAL.UserDAO uDao=new Machine.DAL.UserDAO ();//实例化D层 Machine.Model.Users user = uDao.SelectUser(userName, passWord);//调用(D层连接数据库的)用户名和密码 return user; }
D层
数据库链接:CtDataBase
class CtDataBase { public static string ConnString = @"Server=WXN;Database=MachineAgain_sys;User ID=sa;PassWord=123456"; }
数据库查询:UserDAO
public class UserDAO { public Machine.Model.Users SelectUser(string UserID, string PassWord) { using (SqlConnection conn = new SqlConnection(CtDataBase.ConnString)) { SqlCommand cmd = conn.CreateCommand(); //select 字段 from 数据库表 where 字段名=@字段名 and 密码=@密码 cmd.CommandText = @"Select userID,passWord From Users Where userID=@userID And passWord=@passWord"; cmd.CommandType = CommandType.Text;//获取或者设置一个值,该值解释commandtext的属性 cmd.Parameters.Add(new SqlParameter("@userID", UserID));//设置参数用户名 cmd.Parameters.Add(new SqlParameter("@passWord", PassWord));//设置参数密码 conn.Open();//打开链接 SqlDataReader reader = cmd.ExecuteReader();//对用户进行查询,sqldatareader在数据库中惊醒逐行读取 Machine.Model.Users user = null;//构造user,默认null while (reader.Read())//读取具体数据 { reader.GetInt32(0);//获取值 if (user == null) { user = new Machine.Model.Users();//实例化D层 } user.userID = reader.GetInt32(0);//读取用户名,并且转化成字符串型 user.passWord = reader.GetString(1);//读取数据库中的密码 } return user; } }
U层
/*作者:十二期-王雪娜 *日期:2016年01月25日 *地点:廊坊师范学院信息技术提高班 *版本:v1.1 *名称:登录窗体 */ public partial class frmLogin : Form { public frmLogin() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { //点击确定按钮 //判断用户名和密码是否为空 if (txtUserName.Text == "") { MessageBox.Show("用户名不能为空!"); txtUserName.Focus(); return; } if (txtPassWord.Text == "") { MessageBox.Show("密码不能为空!"); txtPassWord.Focus(); return; } string username = txtUserName.Text.Trim();//把txtUserName的text属性去掉前后空格赋值给字符串类型变量username string password = txtPassWord.Text;//把txtPassWord的text属性去掉前后空格赋值给字符串类型变量password Machine.BLL.LoginManage ngr = new Machine.BLL.LoginManage();//实例化逻辑层业务 Machine.Model.Users user = ngr.UserLogin(username, password);//给实体层user赋值 if (user != null ) { MessageBox.Show("登录成功"); frmMain NewfrmMain = new frmMain(); frmMain.isRunMain = true; NewfrmMain.Show(); this.Close(); // 关掉自身 } else if(user==null ) { MessageBox.Show("登录失败");//显示登录失败 } } private void btnCancel_Click(object sender, EventArgs e) { this.Dispose();//退出窗体或程序 } }
以上是自己最近登录弄出来的一些东西,很多东西真的在于理解,并不是别人弄了你也按照别人的弄了你就会了,而是你和别人的不同但是还是实现了一样的功能,所以要善于发现和创新,并且要大胆。
问题
虽然上面看着这么华丽,但是私下却没有那么顺利,所以还是遇到问题了,遇到的问题就是关于命名空间的,最初看三层视频的时候王继斌老师就说了建立解决方案后第一步要做的就是修改命名空间,当然我也修改了,但是没改全,我的U层的命名空间在建立frmLogin窗体之后才修改的,导致frmLogin的命名空间为MachineUI.frmLogin。而之后建立的所有窗体的命名空间均为Machine.UI,仅一点之差就麻烦大了,在网上查找了也没查到解决办法,有的小伙伴由于敲得代码不多干脆从头再来,但是问题是我懒呀,所以不想从头再来,于是自己就鼓捣,最后还是弄出来了。
解决办法
分别将frmLogin、frmLogin代码块和Program.cs的命名空间均修改为Machine.UI即可,是不是既简单又方便啊,希望能帮助很多人解决问题,一起加油。
记得永远相信你自己,没有做不到的,信心是最好的老师。
0 0
- C#版机房重构登录(不完整版)
- 【C#机房重构】七层登录详解
- 机房重构--三层登录
- 机房重构导出Excel--C#版
- 【机房重构】-C#注册
- 机房重构-七层登录(上)
- 机房重构-七层登录中(Datatable转泛型)
- 机房收费系统重构(五)—登陆窗体完整版
- 机房重构——三层登录
- 机房重构之七层登录
- 【C#】三层登录总结<机房重构>
- 机房重构之登录错误总结
- 【C#】三层登录<机房重构>
- 【C#】七层登录<机房重构>
- 机房重构之窗体登录
- 机房重构---七层登录
- 机房重构—七层登录
- 机房重构之七层登录
- 设计模式用例
- Hack5-2 ImageSwitcher的使用
- Vertex and Fragment Shader
- 一个转行的前JAVA程序员学习IOS开发
- ios客户端websocket的helloworld
- C#版机房重构登录(不完整版)
- Android java 中如何优雅的结束线程
- JZOJ 4218 【五校联考2day1】补给站
- 判断是否是手机浏览
- 修改UITextField的placeholder颜色
- linux之Module_Init
- Design Pattern - Factory Pattern
- Retrofit2(2.x)帮助类(全套)
- ios集成支付宝 报错 rsa_private read error : private key is NULL解决方法