标题:用三层构架做ATM程序 , 底层数据访问层用的是微软Petshop的DBHleper(全部复 ...
只看楼主
来势汹汹
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-17
结帖率:100%
已结贴  问题点数:20 回复次数:5 
用三层构架做ATM程序 , 底层数据访问层用的是微软Petshop的DBHleper(全部复制的),怎么和业务逻辑中的东西关联起来,或是如何在业务逻辑层里调用
Atm.zip (1.17 MB)
搜索更多相关主题的帖子: 微软 
2011-06-17 16:13
来势汹汹
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-17
得分:0 
顶一个..
2011-06-17 16:58
dwwwing
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:284
专家分:986
注 册:2008-10-11
得分:0 
2011-06-17 17:18
dwwwing
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:284
专家分:986
注 册:2008-10-11
得分:0 
2011-06-17 17:18
来势汹汹
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-17
得分:0 
可以详细些吗?   就我那程序而言..  谢谢
2011-06-18 11:37
dwwwing
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:284
专家分:986
注 册:2008-10-11
得分:20 
不好意思,有点忙。就我所看到的问题跟你探讨下:
1.你在business class 中又定义了一个DBHelper ...而这个类跟你copy的microsoft的类重名,很容易混淆,最好不要这样。
2.一般说来,我们在业务逻辑层面,我们不允许出现任何敏感词。比如sql...conncetion...。而DBHelper并不是真正的数据访问层,dbhelper只是对数据库操作的几种方法的抽象。所以我们需要在business与 dbhelper之间再加一个类对数据进行处理转换。
简单的写了下一个用户的处理过程。你随便看看吧。
程序代码:
    public class UserBusiness
    {
        UserDao userDao = new UserDao();

        public IList<User> GetUserById(int id)
        {
            return userDao.GerUserById(id);
        }
    }

    public class UserDao
    {
        public IList<User> GerUserById(int id)
        {
            IList<User> users = new List<User>();
            SqlParameter[] paramters = new SqlParameter[] { new SqlParameter("Id", id) };
            using (SqlDataReader reader = DBHelper.ExecuteReader("ConnectionString", CommandType.StoredProcedure, "procName", paramters))  这里调用 DBHelper 
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        users.Add(ConvertUser(reader));
                    }
                }
            }
            return users;
        }

        private User ConvertUser(SqlDataReader reader)
        {
            User user = new User();
            user.Name = reader.IsDBNull(0) ? string.Empty : reader["Name"].ToString();
            return user;
        }

    }

    public class User
    {
        public string Name
        {
            get;
            set;
        }
    }


[ 本帖最后由 dwwwing 于 2011-6-20 16:04 编辑 ]
2011-06-20 16:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-343191-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056873 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved