Conversion of Data Table To List

public class ConvertDataTableToList
{ /// To convert data table to list public static List<T> ConvertDataTable<T>(DataTable dt) { List<T> data = new List<T>(); foreach (DataRow row in dt.Rows) { T item = GetItem<T>(row); data.Add(item); } return data; } /// Mapping data row to class object private static T GetItem<T>(DataRow dr) { Type temp = typeof(T); T obj = Activator.CreateInstance<T>(); foreach (DataColumn column in dr.Table.Columns) { foreach (PropertyInfo pro in temp.GetProperties()) { if (pro.Name == column.ColumnName) { if (pro.PropertyType == typeof(Int64)) { var valueToset = dr[column.ColumnName] == DBNull.Value ? 0 : Convert.ToInt64(dr[column.ColumnName]); pro.SetValue(obj, valueToset, null); } else if (pro.PropertyType == typeof(Nullable<Decimal>)) { var valueToset = dr[column.ColumnName] == DBNull.Value ? 0 : Convert.ToDecimal(dr[column.ColumnName].ToString().Replace(",", "")); pro.SetValue(obj, valueToset, null); } else if (pro.PropertyType == typeof(Nullable<bool>)) { var valueToset = dr[column.ColumnName] == DBNull.Value ? false : Convert.ToBoolean(dr[column.ColumnName].ToString()); pro.SetValue(obj, valueToset, null); } else if (pro.PropertyType == typeof(string)) { var valueToset = dr[column.ColumnName] == DBNull.Value ? "" : dr[column.ColumnName].ToString(); pro.SetValue(obj, valueToset, null); } else if (pro.PropertyType == typeof(Nullable<DateTime>)) { var valueToset = dr[column.ColumnName] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dr[column.ColumnName].ToString()); pro.SetValue(obj, valueToset, null); } else { pro.SetValue(obj, dr[column.ColumnName], null); } } else continue; } } return obj; } } { pro.SetValue(obj, dr[column.ColumnName], null); } } else continue; } } return obj; } }

Comments

Popular Posts