dataset转list实体
private static object GetDefaultValue(object obj, Type type) { if (obj == DBNull.Value) { return default(object); } else { return Convert.ChangeType(obj, type); } } public static List<T> ConvertToModel<T>(DataSet ds) { List<T> l = new List<T>(); foreach (DataTable dt in ds.Tables) { foreach (DataRow dr in dt.Rows) { bool isunchecked=true; //bool.TryParse(dr.ItemArray[17].ToString(),out isunchecked); if (isunchecked) { T model = Activator.CreateInstance<T>(); foreach (DataColumn dc in dr.Table.Columns) { PropertyInfo pi = model.GetType().GetProperty(dc.ColumnName); if (pi == null) continue; if (pi.CanWrite == false) continue; try { if (dr[dc.ColumnName] != DBNull.Value) pi.SetValue(model, dr[dc.ColumnName], null); else pi.SetValue(model, default(object), null); } catch { pi.SetValue(model, GetDefaultValue(dr[pi.Name], pi.PropertyType), null); } } l.Add(model); } } } return l; }