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

来源:互联网 发布:淘宝自动上架软件 编辑:程序博客网 时间:2024/05/30 23:52


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

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


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
原创粉丝点击