这些天忙着其他事情好久没来博客园看了,新增一篇博客也算是对项目进度的鞭策吧。
第一步打开文件新建一个项目为空白解决方案,选择保存位置;
第二在解决方案名称上单击鼠标右键,在弹出的快捷菜单中选择"添加"→"新建项目",选择window应用窗体程序;
第三同样的步骤,打开新建项目,选择类库分别建立实现数据访问层、业务逻辑访问层、模型层。
第四三层结构的基本框架已经搭建成功,但是各层之间是独立的,只有添加依赖关系,才能让它们相互协作;
添加表示层对业务逻辑层及模型层的依赖,业务逻辑层中添加对数据访问层和模型层的依赖,以及数据访问层对模型层的依赖。
上图:
到此三层结构及各层之间的依赖关系创建完毕,下面实现登录功能:
模型层:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class User { public User() { } public int id; public int Id { get { return id; } set { id = value; } } public string Loginname; private string LoginName { get { return Loginname; } set { Loginname = value; } } public string Loginpwd; private string LoginPwd { get { return Loginpwd; } set { Loginpwd = value; } } public string Logincount; private string LoginCount { get { return Logincount; } set { Logincount = value; } } public string Logintime; private string LoginTime { get { return Logintime; } set { Logintime = value; } } public string Loginip; private string LoginIp { get { return Loginip; } set { Loginip = value; } } }
数据访问层:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public static User GetLoginDal(string uid,string pwd) { string strsql = "select * from [user] where username='" + uid + "' and password ='" + pwd + "'"; using(SqlDataReader reader=Sqlhelper.GetReader(strsql)) { if (reader.Read()) { User user = new User(); user.Loginname = (string)reader["username"]; user.Loginpwd = (string)reader["password"]; user.Logincount = reader["Logincount"].ToString(); user.Logintime = reader["Logintime"].ToString(); user.Loginip = (string)reader["ipaddress"]; reader.Close(); return user; } else { reader.Close(); return null; } }; }
业务逻辑层:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public static class UserBLL { public static bool GetloginBll(string uid,string pwd) { User user = WFCenter.DAL.UserDal.GetLoginDal(uid, pwd); if (user.Loginpwd == pwd) { return true; } else { return false; } } }
应用层:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
private void Btn1_Click(object sender, EventArgs e) { if (this.textBox1.Text.Trim().Length == 0) { MessageBox.Show("用户名不能为空!"); } if (this.textBox2.Text.Trim().Length == 0) { MessageBox.Show("密码不能为空!"); } if (UserBLL.GetloginBll(textBox1.Text, textBox2.Text)) { WFCenter wfc = new WFCenter(); this.Visible = false; wfc.ShowDialog(); this.Close(); } }
登录界面显示界面:
至此整个上位机3层结构设计完成,个人觉得作为一个项目负责人
第一整个软件框架要打好,风格要确立;
第二不要急于编码,先把功能模块化,然后分给手下做;
第三少加点班,多看看博客园,哈哈。
希望各位砖家抛砖引玉。。。。
作者:江南烟雨居
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。