DataSet 转换成 List

来源:互联网 发布:农村淘宝要投资多少钱 编辑:程序博客网 时间:2024/05/23 20:22

当从数据库查询到数据之后(一般为DataSet ),一般需要转换成List,这样才方便后续操作。

而有些人喜欢将这个转换过程放到DAL层去实现,但我喜欢把它放到Model层,搞成一个静态方法。

下面是一个例子,仅供参考:


using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;namespace Com.Model{    public partial class User    {        //ID        public Int64 ID { get; set; }        //用户姓名        public String UserName { get; set; }        //用户年龄        public Int64 UserAge { get; set; }        //是否有房?想房子想疯了...        public Boolean HasHouse { get; set; }        //用户出生日期,可为空        public DateTime? UserBirthDay { get; set; }        //将查询到的数据放到WF_FormCtlAttr里,并赋以新的ID        public static List<User> ToUserList(DataSet ds)        {            List<User> list = new List<User>();            List<long> IDs = new List<long>();      //用于排除重复项            var dt = ds.Tables[0];            if (dt.Rows.Count > 0)            {                foreach (DataRow dr in dt.Rows)                {                    User obj = new User();                    if (dt.Columns.Contains("ID")) obj.ID = Convert.ToInt64(dr["ID"]);                    //用于排除重复项                    if (IDs.Contains(obj.ID)) continue; else IDs.Add(obj.ID);                    if (dt.Columns.Contains("UserName")) obj.UserName = Convert.ToString(dr["UserName"]);                    if (dt.Columns.Contains("UserAge")) obj.UserAge = Convert.ToInt64(dr["UserAge"]);                    if (dt.Columns.Contains("HasHouse")) obj.HasHouse = Convert.ToBoolean(dr["HasHouse"]);                    if (dt.Columns.Contains("UserBirthDay")) obj.UserBirthDay = dr["UserBirthDay"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dr["UserBirthDay"]);                    list.Add(obj);                }            }            return list;        }    }}

这样的话,我们调用的时候直接 List<User> userList = User.ToUserList(dataset);

0 0
原创粉丝点击