三层架构的数据传递

在三层架构中,Bll层不允许出现类似DataTable这种在DAL层出现的数据,所以必须在DAL层对DataTable进行转换

例如把数据行打包成User数据实体(每一行即是一个业务实体):

[c-sharp]  view plain copy print ?
  1. /// <summary>  
  2.         /// 把数据行打包成User数据实体  
  3.         /// </summary>  
  4.         /// <param name="dataRow">一条记录</param>  
  5.         /// <returns>User实体</returns>  
  6.         public static User GetUserFromDataRow(DataRow dataRow)  
  7.         {  
  8.             Models.User user = new Models.User();  
  9.   
  10.             if (dataRow["userID"].ToString() != "")  
  11.             {  
  12.                 user.UserID = int.Parse(dataRow["userID"].ToString());  
  13.             }  
  14.             user.UserName = dataRow["userName"].ToString();  
  15.             user.UserAlias = dataRow["userAlias"].ToString();  
  16.             user.UserPassword = dataRow["userPassword"].ToString();  
  17.             user.UserEmail = dataRow["userEmail"].ToString();  
  18.             if (dataRow["userGroupID"].ToString() != "")  
  19.             {  
  20.                 user.UserGroupID = int.Parse(dataRow["userGroupID"].ToString());  
  21.             }  
  22.             if (dataRow["userCreateTime"].ToString() != "")  
  23.             {  
  24.                 user.UserCreateTime = DateTime.Parse(dataRow["userCreateTime"].ToString());  
  25.             }  
  26.             if (dataRow["userScore"].ToString() != "")  
  27.             {  
  28.                 user.UserScore = int.Parse(dataRow["userScore"].ToString());  
  29.             }  
  30.             if (dataRow["userTopicNum"].ToString() != "")  
  31.             {  
  32.                 user.UserTopicNum = int.Parse(dataRow["userTopicNum"].ToString());  
  33.             }  
  34.             if (dataRow["userPostNum"].ToString() != "")  
  35.             {  
  36.                 user.UserPostNum = int.Parse(dataRow["userPostNum"].ToString());  
  37.             }  
  38.             if (dataRow["isDeleted"].ToString() != "")  
  39.             {  
  40.                 if ((dataRow["isDeleted"].ToString() == "1") || (dataRow["isDeleted"].ToString().ToLower() == "true"))  
  41.                 {  
  42.                     user.IsDeleted = true;  
  43.                 }  
  44.                 else  
  45.                 {  
  46.                     user.IsDeleted = false;  
  47.                 }  
  48.             }  
  49.             if (dataRow["isForbidden"].ToString() != "")  
  50.             {  
  51.                 if ((dataRow["isForbidden"].ToString() == "1") || (dataRow["isForbidden"].ToString().ToLower() == "true"))  
  52.                 {  
  53.                     user.IsForbidden = true;  
  54.                 }  
  55.                 else  
  56.                 {  
  57.                     user.IsForbidden = false;  
  58.                 }  
  59.             }  
  60.             return user;  
  61.         }  

 

要获取所有的数据行,可以用泛型集合List

[c-sharp]  view plain copy print ?
  1. /// <summary>  
  2.        /// 获得所有用户列表  
  3.        /// </summary>  
  4.        public static List<User> GetUserList()  
  5.        {  
  6.            List<User> userList = new List<Models.User>();  
  7.            StringBuilder strSql = new StringBuilder();  
  8.            strSql.Append("SELECT *");  
  9.            strSql.Append("FROM [user] ");  
  10.   
  11.            DataSet dataSet = SqlHelper.ExecuteDataset(strSql.ToString());  
  12.   
  13.            if (dataSet.Tables[0].Rows.Count > 0)  
  14.            {  
  15.                foreach (DataRow row in dataSet.Tables[0].Rows)  
  16.                {  
  17.                    userList.Add(GetUserFromDataRow(row));  
  18.                }  
  19.   
  20.                return userList;  
  21.            }  
  22.            return null;  
  23.        }  

 

在BLL层返回该List,访问该List即可

[c-sharp]  view plain copy print ?
  1. /// <summary>  
  2.        /// 获得所有用户列表  
  3.        /// </summary>  
  4.        /// <returns></returns>  
  5.        public static List<User> GetUserList()  
  6.        {  
  7.            return UserDal.GetUserList();  
  8.        }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值