三层架构的数据传递
来源:互联网 发布:python环境变量设置 编辑:程序博客网 时间:2024/05/21 06:01
在三层架构中,Bll层不允许出现类似DataTable这种在DAL层出现的数据,所以必须在DAL层对DataTable进行转换
例如把数据行打包成User数据实体(每一行即是一个业务实体):
- /// <summary>
- /// 把数据行打包成User数据实体
- /// </summary>
- /// <param name="dataRow">一条记录</param>
- /// <returns>User实体</returns>
- public static User GetUserFromDataRow(DataRow dataRow)
- {
- Models.User user = new Models.User();
- if (dataRow["userID"].ToString() != "")
- {
- user.UserID = int.Parse(dataRow["userID"].ToString());
- }
- user.UserName = dataRow["userName"].ToString();
- user.UserAlias = dataRow["userAlias"].ToString();
- user.UserPassword = dataRow["userPassword"].ToString();
- user.UserEmail = dataRow["userEmail"].ToString();
- if (dataRow["userGroupID"].ToString() != "")
- {
- user.UserGroupID = int.Parse(dataRow["userGroupID"].ToString());
- }
- if (dataRow["userCreateTime"].ToString() != "")
- {
- user.UserCreateTime = DateTime.Parse(dataRow["userCreateTime"].ToString());
- }
- if (dataRow["userScore"].ToString() != "")
- {
- user.UserScore = int.Parse(dataRow["userScore"].ToString());
- }
- if (dataRow["userTopicNum"].ToString() != "")
- {
- user.UserTopicNum = int.Parse(dataRow["userTopicNum"].ToString());
- }
- if (dataRow["userPostNum"].ToString() != "")
- {
- user.UserPostNum = int.Parse(dataRow["userPostNum"].ToString());
- }
- if (dataRow["isDeleted"].ToString() != "")
- {
- if ((dataRow["isDeleted"].ToString() == "1") || (dataRow["isDeleted"].ToString().ToLower() == "true"))
- {
- user.IsDeleted = true;
- }
- else
- {
- user.IsDeleted = false;
- }
- }
- if (dataRow["isForbidden"].ToString() != "")
- {
- if ((dataRow["isForbidden"].ToString() == "1") || (dataRow["isForbidden"].ToString().ToLower() == "true"))
- {
- user.IsForbidden = true;
- }
- else
- {
- user.IsForbidden = false;
- }
- }
- return user;
- }
要获取所有的数据行,可以用泛型集合List
- /// <summary>
- /// 获得所有用户列表
- /// </summary>
- public static List<User> GetUserList()
- {
- List<User> userList = new List<Models.User>();
- StringBuilder strSql = new StringBuilder();
- strSql.Append("SELECT *");
- strSql.Append("FROM [user] ");
- DataSet dataSet = SqlHelper.ExecuteDataset(strSql.ToString());
- if (dataSet.Tables[0].Rows.Count > 0)
- {
- foreach (DataRow row in dataSet.Tables[0].Rows)
- {
- userList.Add(GetUserFromDataRow(row));
- }
- return userList;
- }
- return null;
- }
在BLL层返回该List,访问该List即可
- /// <summary>
- /// 获得所有用户列表
- /// </summary>
- /// <returns></returns>
- public static List<User> GetUserList()
- {
- return UserDal.GetUserList();
- }
- 三层架构的数据传递
- 三层架构数据传递
- 三层架构间数据传递
- 自定义实体类在三层架构之间传递数据
- 三层中的数据传递
- 三层架构中的参数传递
- 三层架构的困惑:为什么要分出数据访问层
- java 三层架构 实现数据的显示和分页功能
- 三层架构的优势
- 三层架构的解释
- 标准的三层架构
- 三层架构的开发
- 数据库的三层架构
- 传统的三层架构
- 数据库的三层架构
- jsp的三层架构
- .Net的三层架构
- MVC的三层架构
- ajax原理,流程和实现
- GridView的数据源之泛型集合
- ubuntu 12.04 root用户登录的方法(转)亲测成功
- Ajax 实现
- WebBrowser控件使用详解
- 三层架构的数据传递
- ios中对文件的读与写
- Linux软件安装与卸载小结
- csapp2e 家庭作业 3.60
- Ubuntu下安装vmware tools的方法。
- 2013.5.31.1~交通工具类3
- 数据库访问类
- linux中环境变量LD_PRELOAD是怎样工作的?
- Sina股票数据接口