List<T> 转换 DataTable
public class List2DataTable {
public static string GetClassName(Type type)
{ if (type == null)
throw new ArgumentException("参数type不能为空");
if (type.HasAttribute<AliasAttribute>())
return type.GetAttribute<AliasAttribute>().Name.ToLower();
else
return type.Name.ToLower();
}
public static DataTable ListToDataTable<T>(List<T> oList) where T : class
{
try
{
string tableName = GetClassName(typeof(T));
DataTable dt = new DataTable();
string fieldName;
object fieldValue;
string[] fieldNames;
System.Reflection.PropertyInfo[] Props = typeof(T).GetProperties();
fieldNames = new string[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
fieldName = Props[i].Name;
fieldNames[i] = fieldName;
dt.Columns.Add(fieldName, Props[i].PropertyType);
}
for (int r = 0; r < oList.Count; r++)
{
DataRow dr = dt.NewRow();
T o = oList[r];
for (int i = 0; i < fieldNames.Length; i++)
{
fieldValue = Props[i].GetValue(o, null);
dr[fieldNames[i]] = fieldValue;
}
dt.Rows.Add(dr);
}
return dt;
}
catch(Exception ex) { }
return null;
}
}
List<T> 转换 DataTable的更多相关文章
- dataGrid转换dataTable
#region dataGrid转换dataTable /// <summary> /// dataGrid转换dataTable /// </summary> ...
- C# 将Excel以文件流转换DataTable
/* *引用 NuGet包 Spire.XLS */ /// <summary> /// Excel帮助类 /// </summary> public class ExcelH ...
- List转换DataTable
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- DataRow数组转换DataTable
public DataTable ToDataTable(DataRow[] rows) { if (rows == null || rows.Length == 0) return null; Da ...
- C# DataRow[]转换DataTable
DataTable dt = ... DataRow[] dr = dt.Select("ID=14"); dt = dr.CopyToDataTable();
- c# 将csv文件转换datatable的两种方式。
第一种: public static DataTable csvdatatable(string path) { DataTable dt = new DataTable(); string conn ...
- 实体lis<T>t转换datatable
public static DataTable ListToTable<T>(List<T> list) { Type type = typeof(T) ...
- 读CSV转换datatable
using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> // ...
- SqL读取XML、解析XML、SqL将XML转换DataTable、SqL将XML转换表
DECLARE @ItemMessage XML )) SET @ItemMessage=N' <ReceivablesInfos> <ReceivablesList> < ...
随机推荐
- MyBatis特殊字符转义
使用mybatis的时候,特殊字符,例如<,>,<>,..... 需使用以下进行转义 < < 小于号 > > 大于号 & & 与 &am ...
- spring 集成shiro 之 自定义过滤器
在web.xml中加入 <!-- 过期时间配置 --> <session-config><session-timeout>3</session-timeout ...
- MySQL的恢复脚本
原文转自: http://blog.csdn.net/dbanote/article/details/13295727 应用场景: ********************************** ...
- elasticsearch与mongodb分布式集群环境下数据同步
1.ElasticSearch是什么 ElasticSearch 是一个基于Lucene构建的开源.分布式,RESTful搜索引擎.它的服务是为具有数据库和Web前端的应用程序提供附加的组件(即可搜索 ...
- nodeJS+express+Jade写一个局域网聊天应用(node基础)
为了复习一下nodeJS, 而且socketIO这东西听起来就好高端有木有, 而且有人写过了open, 也可以作为自己的参考有木有, 点击下载源代码: express是4.x的版本, 跟以前的配置有些 ...
- 95C
跑dijiestra每个点的最短路径 #include<iostream> #include<Vector> #include<cstring> #include& ...
- spring3使用task:annotation-driven开始定时
先看一个案例 package com.jCuckoo.demo; import java.text.SimpleDateFormat; import java.util.Date; import or ...
- HTML常用标签与表格标签
超链接标签: <a href="超链接地址" target="_blank">超链接的文字</a> _blank或new是在新网页中打开 ...
- 【CodeForces 698A】Vacations
f[i][0..2]表示第i天休息|运动|比赛最少的休息天数. #include <cstdio> #include <cstring> #include <algori ...
- plsql dev引起的数据库被黑勒索比特币实现原理分析和解决方案
转自http://www.xifenfei.com/2016/11/plsql-dev-hacker-bitcoin.html afterconnect.sql是plsql dev登录后自动执行脚本, ...