有史以來最簡單的三層實例(C#)


三層已經學了很久了,一直沒有寫博客是因為自己感覺對三層的理解還太膚淺,怕寫的不對誤導別人。當然就現在我的水平而言對於三層的理解還是不夠深刻,但是我感覺不至於誤導別人了,所以將我對於三層的一些理解寫出來,希望會對和我當初一樣迷茫的菜鳥一些幫助!

 

回想當初我學習三層的時候,在網上尋找關於三層的知識,找到了很多例子,但是感覺它們都有些復雜,不太適合剛剛接觸三層的人學習,所以我決定寫一個簡單的三層實例,下面言歸正傳。

 

簡單的三層划分:

 

用戶登錄界面:

 

用戶名、密碼輸入正確以后提示登錄成功:

 

下面是UI層的代碼:

 

//單擊登錄按鈕
        private void btnLogin_Click(object sender, EventArgs e)
        {
            //聲明一個Bool類型的變量用來接收登錄狀態(是否登錄成功)
            bool result = false;

            //判斷用戶名跟密碼是否為空
            if (txtUserName.Text == "")
            {
                MessageBox.Show("用戶名不能為空!");
                txtUserName.Focus();
                return;
            }

            if (txtPwd.Text == "")
            {
                MessageBox.Show("密碼不能為空!");
                txtPwd.Focus();
                return;
            }

            //聲明一個用戶對象
            User euser = new User();
            euser.UserName = txtUserName.Text.Trim();
            euser.Pwd = txtPwd.Text.Trim();

            LoginBLL blogin = new LoginBLL();
            result = blogin.BLogin(euser);

           //判斷是否登錄成功
            if (result == true)
            {
                MessageBox.Show("登錄成功!");
            }
            else
            {
                MessageBox.Show("登錄失敗!");
            }
        }

        //單擊取消按鈕
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

 

  

 

 

下面是BLL(業務邏輯)層的代碼:

 

public class LoginBLL
    {

        /// <summary>
        /// 驗證密碼是否正確
        /// </summary>
        /// <param name="User"></param>
        /// <returns></returns>
        public bool BLogin(User User)
        {
            UserDAL duser = new UserDAL();
            User euser = new User();
            euser = duser.DLogin(User);
            if (euser.Pwd == User.Pwd)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

 

 

 

  



以下是DAL(數據訪問)層的代碼:

 

 public class UserDAL
    {

        static string conString = "data source=RONALDINHO-PC;database=charge system;uid=sa;pwd=123456";
        SqlConnection cnn = new System.Data .SqlClient .SqlConnection (conString);

        /// <summary>
        /// 根據輸入的用戶名取出用戶密碼
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public User  DLogin(User user)
        {
            string sqlString = "select * from UserInfo where UserName='" + user.UserName +"'"  ;
            User euser = new User();
            SqlCommand cmd =new SqlCommand(sqlString, cnn);
            cnn.Open();
            SqlDataReader read ;
            read = cmd.ExecuteReader();
            read.Read();
            euser .UserName  = read[0].ToString();
            euser.Pwd = read[1].ToString();
            return euser   ;
          
        }
    }

 

  

  

 

  

其實三層理解起來很簡單,就是把不同的責任划分到不同的層,以達到解耦的目的。分層的目的就是為了讓程序變得高內聚、低耦合,使代碼更加靈活、易擴展,讓代碼更具有易用性等等。說一千道一萬也沒什么作用,只有通過實踐才能更深刻的體會三層的意義,所以希望和我一樣的菜鳥們看完這篇博客就動手去做吧!

 

PS:此博客的題目純屬為了吸引人,我不敢說我寫的這篇博客就是最簡單明了的三層實例,只是把我的理解拿出來跟大家分享一下,所以高手看到后一笑而過就好了,千萬別噴我...

 

 

源代碼下載

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM