有史以來最簡單的三層執行個體(C#)

來源:互聯網
上載者:User

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

 

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

 

簡單的三層劃分:

 

使用者登入介面:

 

使用者名稱、密碼輸入正確以後提示登入成功:

 

下面是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:此部落格的題目純屬為了吸引人,我不敢說我寫的這篇部落格就是最簡單明了的三層執行個體,只是把我的理解拿出來跟大家分享一下,所以高手看到後一笑而過就好了,千萬別噴我...

 

 

原始碼下載

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.