转换成 List"/>
DataSet 转换成 List
当从数据库查询到数据之后(一般为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{//IDpublic 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里,并赋以新的IDpublic 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);
更多推荐
DataSet 转换成 List
发布评论