List转DataTable(反射)
来源:互联网 发布:java 设置文件夹权限 编辑:程序博客网 时间:2024/05/29 04:50
/// <summary>
/// 将集合类转换成DataTable
/// </summary>
/// <param name="list">集合</param>
/// <returns></returns>
public static DataTable ToDataTable(IList list)
{
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
//这里有可能会报:DATASET不支持System.Nullable错误
//你可以把下面一行代码改为result.Columns.Add(pi.Name);
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
}
/// <summary>
/// 将泛型集合类转换成DataTable
/// </summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="list">集合</param>
/// <returns>数据集(表)</returns>
public static DataTable ToDataTable<T>(IList<T> list)
{
return ConvertX.ToDataTable<T>(list, null);
}
/// <summary>
/// 将泛型集合类转换成DataTable
/// </summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="list">集合</param>
/// <param name="propertyName">需要返回的列的列名</param>
/// <returns>数据集(表)</returns>
public static DataTable ToDataTable<T>(IList<T> list, params string[] propertyName)
{
List<string> propertyNameList = new List<string>();
if (propertyName != null)
propertyNameList.AddRange(propertyName);
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
if (propertyNameList.Count == 0)
{
//这里有可能会报:DATASET不支持System.Nullable错误
//你可以把下面一行代码改为result.Columns.Add(pi.Name);
result.Columns.Add(pi.Name, pi.PropertyType);
}
else
{
if (propertyNameList.Contains(pi.Name))
result.Columns.Add(pi.Name, pi.PropertyType);
}
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
if (propertyNameList.Count == 0)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
else
{
if (propertyNameList.Contains(pi.Name))
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
}
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
}
- List转DataTable(反射)
- List转DataTable(反射)
- List转DataTable(反射)
- List转DataTable 反射方式
- C# List转DataTable(反射)
- DataTable转List集合,Json.net与反射性能测试
- List转DataTable
- DataTable转List
- DataTable转List
- list转DataTable
- datatable转LIST
- DataTable转List
- DataTable转List
- C#DataTable转list
- datatable转List<>
- DataTable 转 List<T>
- List转DataTable
- c# 反射得到实体类的字段名称和值,DataTable转List<T>
- 购物心理
- java.lang包中的public final Math类
- magento -- 修改代码让后台属性组合里的属性显示中文
- 顶级pom和子pom版本批量修改
- LEADTOOLS Silverlight Demo演示大全
- List转DataTable(反射)
- POJ 3299
- ORACLE 临时表空间使用率过高的原因及解决方案
- Struts2之类型转换
- AE+C# GP批量裁剪
- Android 图片OutOfMemory异常bitmap size exceeds VM budget的原因及解决方法
- html table 表格导出到Excel
- Eclipse 插件开发 打开Windows资源管理器
- HTML学习笔记,基础知识篇