关于三层架构

费劲力气终于搞出了一个三层架构的模型,, 算是入门了,虽然只是一个登陆界面 方法也很简单,变量就俩,但总算是通过model贯穿整个程序,,,   原来  dal和bll掉用model都是用 model定义的

   /////////// dal    ///////////

public static bool denglu(model.denglu dl)
        {  using(SqlConnection conn = new SqlConnection(constring))
            { string str1 = "select * from denglu where zh=@Zhanghao and mm=@Mima";
             using (SqlCommand cmd = new SqlCommand(str1, conn))
                {
                    conn.Open();
                    cmd.Parameters.Add("@Zhanghao", SqlDbType.Char, 10).Value = dl.Zhanghao;
                    cmd.Parameters.Add("@Mima", SqlDbType.Char, 10).Value = dl.Mima;
                SqlDataReader sd;
                sd = cmd.ExecuteReader();
                if (sd.Read())
                    return true;
                else
                    return false;
                }
            }
        }
       
 

///////////  bll    ///////////

  public bool bl(model.denglu dl)

{ return dal.Class1.denglu(dl);   }

 bll起到调用dal方法的目的,,,跟委托有些类似,,,虽然不是很理解这种机制对封装性有什么好处,

////////////model////////////////////////

namespace model
{
    public class denglu
    {

       private string zhanghao;

        public string Zhanghao
        {
            get { return zhanghao; }
            set { zhanghao = value; }
        }
        private string mima;

        public string Mima
        {
            get { return mima; }
            set { mima = value; }
        }
    }
}

 dal用来封装方法,定义应用的变量

bll 用来调用 dal

在 应用层中 就不需要引用 dal了 直接调用bll 

 private void button1_Click(object sender, EventArgs e)
        {
            model.denglu dl = new denglu();
            dl.Zhanghao = textBox1.Text;
            dl.Mima = textBox2.Text;
            bll.Class1 bll = new bll.Class1();
                
            if (bll.bl(dl))
            {
                主界面 zhu = new 主界面();
                zhu.Show();
            }
            else
            {
                MessageBox.Show("账号或密码不匹配");
            }
        } 

  三层架构真麻烦!!!  可能我修为还不够,项目不够大...

这次需要独立完成一个音像出租系统,两天只完成了个登陆,, 但进步还是有的,, 快过年了,,, 争取把所有模块先确定下来,,, 下周就填代码了...  

原文地址:https://www.cnblogs.com/aqbyygyyga/p/1635753.html