当前位置:编程学习 > C#/ASP.NET >>

.Net 三层结构

谁有 .Net 三层结构的 教程 给小弟一个 万分感谢哦 = =! --------------------编程问答-------------------- http://blog.myspace.cn/e/404814826.htm


http://www.360doc.com/relevant/0/4/6/1/14641640_more.shtml


http://zhidao.baidu.com/question/44274432.html --------------------编程问答--------------------  木有 --------------------编程问答-------------------- 下源码看、 --------------------编程问答-------------------- 找一个项目看一下。。。 --------------------编程问答--------------------
引用 4 楼 porschev 的回复:
找一个项目看一下。。。

 没有教程什么的么· 初学 不太明白· --------------------编程问答-------------------- 要死死在三层上 --------------------编程问答--------------------
引用 6 楼 xlfancy 的回复:
要死死在三层上

、。。。。。 迷茫额·· --------------------编程问答-------------------- petshop
http://zzk.cnblogs.com/s?w=%E4%B8%89%E5%B1%82 --------------------编程问答-------------------- 网上很多东西! --------------------编程问答-------------------- petshop开源的 --------------------编程问答-------------------- 模型层,
数据访问层,
业务逻辑层,
数据层引用模型层,业务层引用数据层和模型层 --------------------编程问答-------------------- 最简单的一个
Model层
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CIPACETool.MODEL
{
    public class User
    {

        #region public property accessor

        public int UserID
        {
            get;
            set;
        }
        public string Login
        {
            get;
            set;
        }
        public string FirstName
        {
            get;
            set;
        }
        public string LastName
        {
            get;
            set;
        }
        public string Password
        {
            get;
            set;
        }
        public bool IsActive
        {
            get;
            set;
        }
        public static User Current
        {
            //get
            //{

            //}
            //set
            //{
            //    this.current = value;
            //}
            get;
            set;
        }

        #endregion

    }
}
DAL层
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CIPACETool.MODEL;
using System.Data;
using CIPACE.DatabaseUtility;
using System.Data.SqlClient;

namespace CIPACETool.DAL
{
    public class User
    {

        #region default constructor
        /// <summary>
        /// default constructor
        /// </summary>
        public User()
        { }
        #endregion

        #region GetUser(string userId)
        /// <summary>
        /// according to the give userid,return User
        /// </summary>
        /// <param name="userId">userid</param>
        /// <returns>return user</returns>
        public static DataTable GetUser(string userId)
        {
            SQLUtil db = new SQLUtil();
            db.AddParameter("@UserID",Convert.ToInt32(userId));
           // DataSet ds = db.ExecuteDataSet("Cip_UserLogs_Get", SQLUtil.DatabaseType.CIPACE);
            DataSet ds = db.ExecuteDataSet("CIPTool_GetUserByuserId", 1);
            if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                return ds.Tables[0];
            }
            return null;
        }
        #endregion

        #region GetUserMenu(string userId)
        /// <summary>
        /// return menus associate to user
        /// </summary>
        /// <param name="userId">userid</param>
        /// <returns>return menus collection associate to user</returns>
        public static DataTable GetUserMenu(string userId)
        {
            SQLUtil db = new SQLUtil();
            db.AddParameter("@UserID", Convert.ToInt32(userId));
            DataSet ds = db.ExecuteDataSet("CIPTool_GetUserByuserId", 1);
            if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                return ds.Tables[0];
            }
            return null;
        }
        #endregion

        #region IsValidUser(string userId,string password)
        /// <summary>
        /// judge gived userid and password is valid
        /// </summary>
        /// <param name="userId">userid</param>
        /// <param name="password">password</param>
        /// <returns>true:valid;false:invalid</returns>
        public static bool IsValidUser(string userId, string password)
        {
            bool isValid = false;
            SQLUtil db = new SQLUtil();
            db.AddParameter("@UserId",Convert.ToInt32(userId));
            db.AddParameter("@Password",password);
            DataTable dt = db.ExecuteDataSet("CIPTool_CheckUserValid", 1).Tables[0];
            if (dt.Rows.Count > 0)
                isValid = true;
            return isValid;
        }
        #endregion


    }
}
BLL层
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CIPACETool.MODEL;
using CIPACETool.DAL;
using CIPACE.DatabaseUtility;
using System.Data;
using System.Collections;
using ShortModel = CIPACETool.MODEL;
using ShortDal = CIPACETool.DAL;

namespace CIPACETool.BLL
{
    public class User
    {

        #region GetUser(string userId)
        /// <summary>
        /// return User with gived userid
        /// </summary>
        /// <param name="userId">userid</param>
        /// <returns>return User with gived userid</returns>
        public static CIPACETool.MODEL.User GetUser(string userId)
        {
            CIPACETool.MODEL.User user = new CIPACETool.MODEL.User();
            DataTable dt = CIPACETool.DAL.User.GetUser(userId);
            if (dt.Rows.Count > 0)
            {
                DataRowView drv = dt.DefaultView[0];
                user.UserID = Convert.ToInt32(drv["UserID"]);
                user.Login = drv["Login"].ToString();
                user.FirstName = drv["FirstName"].ToString();
                user.LastName = drv["LastName"].ToString();
                user.Password = drv["Password"].ToString();
                user.IsActive = Convert.ToInt32(dt.Rows[0]["IsActive"]) == 1 ? true : false;
                return user;
            }
            return null;
        }
        #endregion

        #region IsValidUser(string userId,string password)
        /// <summary>
        /// judge gived userid and password is valid
        /// </summary>
        /// <param name="userId">userid</param>
        /// <param name="password">password</param>
        /// <returns>true:valid;false:invalid</returns>
        public static bool IsValidUser(string userId, string password)
        {
            return CIPACETool.DAL.User.IsValidUser(userId,password);
        }
        #endregion

        #region GetUserMenu(string userId)
        /// <summary>
        /// get menus associate to userid
        /// </summary>
        /// <param name="userId">userid</param>
        /// <returns>get menus associate to userid</returns>
        public static CIPACETool.MODEL.MenuItem GetUserMenu(string userId)
        {
            ShortModel.MenuItem mi = new ShortModel.MenuItem();
            DataTable dt=ShortDal.User.GetUserMenu(userId);
            if (dt.Rows.Count > 0)
            {
                DataRowView drv = dt.DefaultView[0];
                mi.MenuItemId = Convert.ToInt32(drv["MenuItemId"]);
                mi.FunctionID = Convert.ToInt32(drv["FunctionID"]);
                mi.IsActive = Convert.ToInt32(drv["IsActive"]) == 1 ? true : false;
                mi.ParentMenuItemId = Convert.ToInt32(drv["ParentMenuItemId"]);
                mi.SortOrder = Convert.ToInt32(drv["SortOrder"]);
                mi.Title = drv["Title"].ToString();
                mi.Url = drv["Url"].ToString();
                return mi;
            }
            else
                return null;
        }
        #endregion

        public static List<CIPACETool.MODEL.MenuItem> GetUserMenuCollection(string userId)
        {
            List<CIPACETool.MODEL.MenuItem> lMenuItemList = new List<CIPACETool.MODEL.MenuItem>();
            return null;
        }

    }
}
数据库类
--------------------编程问答-------------------- 上面是最简单的一个简单三层架构 --------------------编程问答-------------------- http://download.csdn.net/source/2623660三层项目实例 --------------------编程问答-------------------- www.51aspx.com有很多例子 --------------------编程问答--------------------
引用 13 楼 wybxs2006 的回复:
上面是最简单的一个简单三层架构



谢谢.
--------------------编程问答-------------------- 下一个动软的三层生成器、还写个毛  头大 。直接生成得了 又不从事什么科研  只要完成功能就行!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,