逐步深入三层架构(三)-三层登陆源码分享


下面是我在敲三层架构登陆窗体的时候的代码;

一方面本着为人民服务的心做到友好的分享,另一方面点点滴滴的积累自己的代码库资源。


1,UI层的部分代码如下:

  这里其实蛮简单的,它的操作最多的还是界面控件以及属性等,UI层也叫界面层;


<span style="font-family:KaiTi_GB2312;font-size:18px;">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);

            if (user!=null)
            {
                MessageBox.Show("登陆用户:" + user.UserName);
            }
            else
            {
                MessageBox.Show("登陆失败");
            }

  
        }

        private void txtUserName_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}
</span>





2,BLL层的部分代码如下:

  这部分是业务逻辑层,中间干活的那个,主要工作是接收-处理-传出数据;


<span style="font-family:KaiTi_GB2312;font-size:18px;">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.UpdateSore(userName, 10);
                 return user;
             }
             else
             {

                 //throw new Exception("登陆失败。");
                 return null;
             }
        }        
    }
}
</span>


      



3,DAL层的部分代码如下:

  这部分是数据访问层,主要跟数据库打交道,当然个人觉得也是意义最重要的一层。


这是User部分;

<span style="font-family:KaiTi_GB2312;font-size:18px;">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 * 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(0);
                    user.password = reader.GetString(1);//密码不需要从数据库里面取得
                    if (!reader.IsDBNull(2))
                    {
                        user.Email = reader.GetString(2);
                    }                  
                }

                return user;
            }
        }
    }
}
</span>




这是Score部分:

<span style="font-family:KaiTi_GB2312;font-size:18px;">namespace Login.DAl
{
    public class ScoreDAO
    {
        public void UpdateSore(string userName,int value)
       {
           using (SqlConnection conn = new SqlConnection(DbUtil.ConnString))
           {
               SqlCommand cmd = conn.CreateCommand();
               cmd.CommandText = @"INSERT INTO SCORES(UserName,Score,ID)Values(@UserName,@Score,1)";
               cmd.Parameters.Add(new SqlParameter("@UserName",userName));
               cmd.Parameters.Add(new SqlParameter ("@Score",value));
            
               conn.Open();
               cmd.ExecuteNonQuery();
           }
       }
    }
}
</span>




当然,除了这些还有一些SQL语句,因为每个人跟每个人的SQL对象以及用户名等都不一样,所以没有放上来;

如果有需要的可以私信我,一起探讨,OK,先到这里了....







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值