注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

从C开始

 
 
 

日志

 
 

.net网页开发中的三层架构 - 续  

2011-01-14 18:18:57|  分类: .net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一般在用.net在实际的项目开发中,围绕前面讲的三层架构,分别是上层网页的表示层,中间业务逻辑层,和底层的数据访问层,还会扩展成更多的层,往往会有5.6层左右。

分别是Model层,用来细化最上面的表示层,用于获取网页控件中的值,例如TextBox中的值。

最底层的DB_Helper层,专门用来执行sql语句。例如我们用到的数据库可能会是sql servermysqloracle等。那么他们用到的连接数据库的方法都是不一样的。但是执行的语句确是大同小异,所以前篇文章中提到的数据访问层,就被用来创建sql语句,待创建完后再把它作为参数传递给DB_Helper层,完成sql语句的执行。

可能还有一层,用于放置三层都可能调用的函数。但是一般很少用到。

 

最终产生如下:

.net网页开发中的三层架构 - 续 - Fly - 从C开始

 

1.网页层代码:

protected void BTN_Save_Click(object sender, EventArgs e)

{

    //把控件中的值全都存在类CSMS_Model.UserInfo的对象MyUser

    CSMS_Model.UserInfo MyUser = new CSMS_Model.UserInfo();

    MyUser.UserLogin = this.TB_Login.Text;

MyUser.UserName = this.TB_Name.Text;

    MyUser.UserPsw = this.TB_Psw.Text;

    MyUser.UserRemark = this.TB_Remark.Text;

       

   //添加用户

   int count = CSMS_Bll.UserInfo.AddUser(MyUser);

   if (count > 0)

   {

        Response.Write("<script>alert('插入成功!');</script>");

   }

 }

 

2.Model层代码:

namespace CSMS_Model

{

    public class UserInfo

    {

        private int _UserId;       

        private string _UserLogin;

        private string _UserName;

        private string _UserPsw;

        private string _UserRemark;

 

        //获得用户Id

        public int UserId      

        {

            set { _UserId = value; }

            get { return _UserId; }

        }

        //获得登陆名

        public string UserLogin

        {

            set { _UserLogin = value; }

            get { return _UserLogin; }

        }

        //获得用户姓名

        public string UserName

        {

            set { _UserName = value; }

            get { return _UserName; }

        }

        //获得登陆密码

        public string UserPsw

        {

            set { _UserPsw = value; }

            get { return _UserPsw; }

        }

        //获得用户备注

        public string UserRemark

        {

            set { _UserRemark = value; }

            get { return _UserRemark; }

        }

    }

}

 

3.Bll层代码:

public class UserInfo

{

    /// <summary>

    /// 添加用户

    /// </summary>

    /// <param name="MyUser">CSMS_Model.UserInfo的对象</param>

    /// <returns>返回执行Sql语句后受影响的行数</returns>

    public static int AddUser(CSMS_Model.UserInfo MyUser)

    {

        //return Dal.UserInfo.AddUserDal(UserLogin, UserPsw, UserName, UserRemark);

        //添加用户

        return CSMS_Dal.UserInfo.AddUserDal(MyUser);

    }

}

 

4.Dal层代码:

public class UserInfo

{

    /// <summary>

    /// 用于添加一个用户

    /// </summary>

    /// <param name="MyUser">CSMS_Model.UserInfo的对象</param>

    /// <returns>执行Sql语句后受影响的行数</returns>

    public static int AddUserDal(CSMS_Model.UserInfo MyUser)

    {

        //生成完整的Sql语句

        string SqlStr = "insert into UserInfo values('" + MyUser.UserLogin.ToString() + "','"

                   + MyUser.UserName.ToString() + "','" + MyUser.UserPsw.ToString() + "','"

+ MyUser.UserRemark.ToString() + "')";

        //执行Sql语句,并返回受影响的行数

        return CSMS_Helper.SqlDBHelper.ExecuteSqlStr(SqlStr);

    }

}

 

5.Helper层代码:

public class SqlDBHelper

{

    /// <summary>

    /// 用于执行Sql语句

    /// </summary>

    /// <param name="SqlStr">需要执行的Sql语句</param>

    /// <returns>返回受影响的行数</returns>

    public static int ExecuteSqlStr(string SqlStr)

    {

        //与数据库建立一个连接,用户名为sa,密码为空

        SqlConnection conn = new SqlConnection(

"Data Source=10.70.9.171;Initial Catalog=test;User ID=sa");

        //打开数据库

        conn.Open();

        //利用一个现有连接创建一个Command,用以执行sql指令

        SqlCommand cmd = conn.CreateCommand();

        //Cmmand写入sql语句

        cmd.CommandText = SqlStr;

        //执行sql指令并返回受影响的行数

        return cmd.ExecuteNonQuery();

    }

}

  评论这张
 
阅读(720)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018