C#机房合作:List的用法

大家都记得机房合作有几个要求:比如不允许使用存储过程、从DAL层返回的结果不能是DataTable类型的、要使用设计模式......今天就来讲一讲,List要怎么用。

 

List<T>类是泛型集合,关于它的概念我以后会具体讲解(坑+1)。

 

而之前在机房重构使用的DataTable类是ADO.NET技术中的概念,是一个临时保存数据的网格虚拟器(表示内存中数据的一个表),返回的是记录集;而List中的值都是实体中的类,而因为在编写D层时,实体中类名和数据库中的字段名都是对应的,因此我们是不知道,并且也不需要知道数据库的内部结构。这一点符合面向对象思想的封装概念。

 

实际操作:

1.首先在DAL层建立SQLHelper类。这个不需要多说,大家学过机房重构和牛腩之后自己也就懂里面的代码了

 

2.在DAL层使用代码:

        //实例化操作类
        SQLHelper SQLHelper = new SQLHelper();
        //查看用户表
        public List<userEntity> selectUserInfo(Entity.userEntity userEntity )
        {
            SqlParameter[] parmes = { new SqlParameter("@ID", userEntity.ID.Trim()) };
            string sql = "SELECT * FROM [user] WHERE ID = @ID";
            DataTable table = SQLHelper.ExecuteQuery(sql, parmes, CommandType.Text);
            
            List<userEntity> list = new List<userEntity>();
            foreach (DataRow row  in table.Rows)
            {
                list.Add(new userEntity()
                {
                    ID=row["ID"].ToString(),
                    passWord=row["passWord"].ToString(),
                    userName=row["userName"].ToString(),
                    type=row["type"].ToString(),
                    cash=Convert.ToInt32(row["cash"]),
                    isAllow=row["isAllow"].ToString(),
                    state=row["state"].ToString ()
                    
                });
            }
            
            return list ;
        }

和之前机房重构的D层类似,只是在给table赋值之后加了一段对list泛型的实例化和增加集合,其中,集合中的元素都是实体层的类型,因此list.Add语法其实是对实体层的一个传值过程。

 

3.传到B层,这里需要注意,如果是需要在B层进行逻辑判断的,相应方法要从List类型写U层需要的类型,然后在方法内部对List类型转化;如果不需要进行逻辑判断而是传到U层进行进一步处理,方法就用List泛型类型即可!

从List中获得D层查询的值语法:

list[0].属性名(属性名中的属性值是通过实体层存储的)

 

先简单的说这么多,若有不足,请大家指出!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值