c# 泛型编程典型应用 ModelConvertHelper
2012-09-13 14:25
211 查看
通用类,可以把DataTable转换为任何模型。此代码为网上搜集,比较好用,所以贴出来了。
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Reflection; namespace Flexzoo.Data { /// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where T : new() { public static IList<T> ConvertToModel(DataTable dt) { // 定义集合 IList<T> ts = new List<T>(); // 获得此模型的类型 Type type = typeof(T); string tempName = ""; foreach (DataRow dr in dt.Rows) { T t = new T(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { tempName = pi.Name; // 检查DataTable是否包含此列 if (dt.Columns.Contains(tempName)) { // 判断此属性是否有Setter if (!pi.CanWrite) continue; object value = dr[tempName]; if (value != DBNull.Value) pi.SetValue(t, value, null); } } ts.Add(t); } return ts; } } }
相关文章推荐
- C#中的ConvertHelper--ConvertToModel
- 在C#代码中应用Log4Net(二)典型的使用方式
- 在C#代码中应用Log4Net(二)典型的使用方式
- 在C#代码中应用Log4Net(二)典型的使用方式
- ModelConvertHelper(将DataTable转换成List<model>)
- 在C#代码中应用Log4Net(二)典型的使用方式
- 在C#代码中应用Log4Net(二)典型的使用方式
- 在C#代码中应用Log4Net(二)典型的使用方式
- C#中delegate的典型应用
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- pagehelper 插件应用报错:ConversionNotSupportedException: Failed to convert property value of type ‘java.la
- C# SqlHelper应用开发学习
- 在C#代码中应用Log4Net(二)典型的使用方式
- 最全的运放典型应用电路及分析
- C# .NET中的 反射的应用
- Sharepoint2010应用开发三:使用客户端对象模型(Client Object Model)读取列表数据
- C# Convert Parse...,以及保留小数
- 4.3/4.4/4.5/4.6 高精度(数组应用的典型范例1)
- zookeeper 典型应用场景 附代码
- 使用.net框架应用C#语言开发窗口程序的一些注意事项