C# 用于将一个DataTable转换为Users对象的列表

1:第一种例子:

/// <summary>

/// 用户名循环赋值

/// </summary>

/// <param name="dt"></param>

/// <returns></returns>

public List<Users> FenPeiFillModelUsers(DataTable dt)

{

if (dt.Rows.Count == 0 || dt == null)

{

return null;

}

List<Users> Users = new List<Users>();

foreach (DataRow dr in dt.Rows)

{

Users beiBu = new Users();

for (int i = 0; i < dr.Table.Columns.Count; i++)

{

PropertyInfo info = beiBu.GetType().GetProperty(dr.Table.Columnsi.ColumnName);

if (info != null && dri != DBNull.Value)

{

info.SetValue(beiBu, dri, null);

}

}

Users.Add(beiBu);

}

return Users;

}

2: 第二种万能的方法,使用了泛型方法

/// <summary>

/// DataTable转List

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="dataTable"></param>

/// <returns></returns>

private List<T> FillModel<T>(DataTable dataTable) where T : new()

{

if (dataTable == null || dataTable.Rows.Count == 0)

{

return null;

}

var dataList = new List<T>();

foreach (DataRow row in dataTable.Rows)

{

var dataItem = new T();

foreach (DataColumn column in dataTable.Columns)

{

var property = typeof(T).GetProperty(column.ColumnName);

if (property != null && rowcolumn != DBNull.Value)

{

property.SetValue(dataItem, Convert.ChangeType(rowcolumn, property.PropertyType));

}

}

dataList.Add(dataItem);

}

return dataList;

}

相关推荐
影寂ldy4 小时前
C# 类和对象
开发语言·c#
z落落6 小时前
C# 构造函数(无参/有参/重载/this)+析构函数(终结器)|GC 垃圾回收
java·开发语言·c#
z落落6 小时前
C# 字段与属性(get/set访问器、三种属性写法、只读属性)+属性拦截例子(get动态计算 + set数据校验)
开发语言·c#
影寂ldy6 小时前
C#栈和队列
开发语言·c#
魔法阵维护师7 小时前
从零开发游戏需要学习的c#模块,第三十四章(设置界面)
学习·游戏·c#
gc_22997 小时前
学习C#调用OpenXml操作word文档的基本用法(39:学习表格类-1)
c#·word·表格·table·openxml
gc_22997 小时前
C#测试调用Net.Codecrete.QrCodeGenerator库生成二维码的基本用法
c#·二维码·qrcodegenerator
yivifu9 小时前
CSS 自动级联编号有序列表完全指南
前端·css·c#·html·有序列表·级联编号
Ws_9 小时前
C# 桌面端开发工程师面试题 + 参考答案
开发语言·面试·c#
周杰伦fans11 小时前
掌握 MVVM Light:.NET 桌面应用开发的 MVVM 利器,掌握 ObservableObject、RelayCommand 和 Messenger
c#·wpf