三层架构实例——通讯录

来源:互联网 发布:curl post json body 编辑:程序博客网 时间:2024/06/07 02:11

从三层理论知识的学习到实例操练,已经将近半个月的时间了,现在终于暂时告一段落了。开始跟步练习登录实例的时候,还是有很多的疑问,多亏了我们可爱的王丹(大)同学,听了她的讲解后,感觉顿时明白了许多,也从开始的传参的形式改为使用实体,应用起来确实简单了很多,还甚至实现了自己的小例子——通讯录。下面就跟大家分享一下我的成果吧。

 

1 界面概览


1.1 主窗体


下图所示为通讯录的主界面,可以看到增删改查的功能它可是样样都有呦。

 

 

1.2 修改窗体




 1.3  显示全部窗体


用于查看全部好友信息,此处需要用到控件DataGridView。


1.4 小技巧


对于界面的设置这里就不过多介绍了,有两点值得注意:

 1,  大家看到“增加(A)”了吗?有什么疑问么?是的,这就是我们常见的快捷键,在修改按钮的“text”属性值的时候设置为“增加(&A)”就可以响应快捷键“Alt+A”了,其他几个同理。

 

更多信息请访问http://www.cnblogs.com/junjie94wan/archive/2011/08/11/2135255.html

  

 2.设置默认按钮。我们都知道VB中只要将窗体的”Default”属性设置为相应得按钮就可以响应回车键了,C#与VB有点类似,将窗体的“AcceptButton”属性设置为相应的按钮就可以默认响应回车键了,相应的“CancelButton”响应的是Esc键。

       

更多信息请访问http://www.cnblogs.com/jason-liu-blogs/archive/2012/09/18/2691195.html

  

好了,接下来就赶快看一下功能的实现吧。

 

2 代码实现

 

2.1 解决方案概览


设计完,U层、B层、D层以及实体层的内容见下图:


 

2.2 代码概览


由于本实例涵盖了全部基本功能:增删改查,代码量过大。而增、删、改都会用到查询功能,那么在这里就简单介绍一下查询的功能吧。完整的程序代码已经打包上传到了CSDN上,如果您有兴趣的话,欢迎下载:http://download.csdn.net/detail/u010773667/7144477

 

对于查询功能,首先要判断是否有需要查询的好友,该好友是否存在,如果存在返回全部信息,如果不存在,给出提示。


U层

//****************************查询好友*********************        private void button1_Click(object sender, EventArgs e)        {            if (txtUserName.Text == "")            {                MessageBox.Show("请输入要查询的姓名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);            }            UserInfo user = new UserInfo();            user.userName = txtUserName.Text.Trim();            Contacts.BLL.bContactsManage selectUser = new Contacts.BLL.bContactsManage();            user = selectUser.SelectContacts(user);            txtPhoneNume.Text = user.phoneNum;            if (txtPhoneNume.Text == "")            {                MessageBox.Show("该好友不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);                txtUserName.Select();                txtUserName.Focus();            }        }

****************************************************************************************************************************************************************************************************

B层

//***********查询好友***************      public UserInfo SelectContacts(UserInfo user)       {           UserInfo enUser = new UserInfo();           Contacts.DAL.SelectUserDAO selectUser = new SelectUserDAO();           enUser = selectUser.SelectUser(user);           return enUser;       }

****************************************************************************************************************************************************************************************************

D层

namespace Contacts.DAL{    public class SelectUserDAO    {        //*******查询好友信息*****************        public UserInfo SelectUser(UserInfo user)        {            UserInfo enUser = new UserInfo();                    using (SqlConnection conn = new SqlConnection(DBUtil.ConnString))            {                SqlCommand cmd = conn.CreateCommand();                cmd.CommandText = "Select userName ,phoneNum from T_Users where userName=@UserName";                cmd.CommandType = CommandType.Text;                cmd.Parameters.Add(new SqlParameter("@UserName", user.userName));                conn.Open();                SqlDataReader reader = cmd.ExecuteReader();                while (reader.Read())                {                    enUser.phoneNum = reader["PhoneNum"].ToString();                    enUser.userName = reader["UserName"].ToString();                }                return enUser;            }        }    }}

****************************************************************************************************************************************************************************************************

实体层

namespace Contacts.Model{   public  class UserInfo    {       private string UserName;       private string PhoneNum;       //private string Address;       public string  userName       {           get { return UserName; }           set { UserName = value; }       }       public string phoneNum       {           get { return PhoneNum; }           set { PhoneNum = value; }            }           }}


3 运行效果


3.1 没有要查询的好友




3.2 查询的好友不存在




3.3 查询的好友存在





是的,一个基本的通讯录查询功能就这样生成了,有点小小的成就感~~~,其它的增、删、改更加诱人呦~~~是不是有点儿小小的心动了呢?心动不如行动,那就赶快舞动你手中的代码让也它“RUN”起来吧!

****************************************************************************************************************************************************************************************************
程序源码下载链接:http://download.csdn.net/detail/u010773667/7144477

0 0
原创粉丝点击