C#对象、List<>转DataTable
public static DataTable ObjectToTable(object obj)
{
try {
Type t;
if (obj.GetType().IsGenericType)
{
t = obj.GetType().GetGenericTypeDefinition();
}
else
{
t = obj.GetType();
}
if(t== typeof(List<>)||
t==typeof(IEnumerable<>))
{
DataTable dt = new DataTable();
IEnumerable<object> lstenum=obj as IEnumerable<object>;
if(lstenum.Count()>0)
{
var ob1 = lstenum.GetEnumerator();
ob1.MoveNext();
foreach (var item in ob1.Current.GetType().GetProperties())
{
dt.Columns.Add(new DataColumn() { ColumnName = item.Name });
}
//数据
foreach (var item in lstenum)
{
DataRow row = dt.NewRow();
foreach (var sub in item.GetType().GetProperties())
{
row[sub.Name] = sub.GetValue(item, null);
}
dt.Rows.Add(row);
}
return dt;
}
}
else if (t == typeof(DataTable))
{
return (DataTable)obj;
}
else //(t==typeof(Object))
{
DataTable dt = new DataTable();
foreach (var item in obj.GetType().GetProperties())
{
dt.Columns.Add(new DataColumn() { ColumnName=item.Name });
}
DataRow row= dt.NewRow();
foreach (var item in obj.GetType().GetProperties())
{
row[item.Name] = item.GetValue(obj, null);
}
dt.Rows.Add(row);
return dt;
}
}catch(Exception ex)
{
}
return null;
}
C#对象、List<>转DataTable的更多相关文章
- 对象列表转换为DataTable或DataTable转换为对象列表.
/**********************************************************************************/ // 说明: 数据转换工具. ...
- [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)
点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...
- 将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据
领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其 ...
- C# 对象克隆,DataTable转LIST
public class ConvertHelper<T> where T : new() { private static string module = "ConvertHe ...
- 【类库】容器对象(List、DataTable、 DataView、Dictionary)
首先申明一下,写此博文的目的是纪录一下,知识都是现成的,只是整理一下,为了让自己更容易看懂,比在其他地方更容易明白.因为它们太常用了,不忍心每次都去用那么长的时间查看MSDN,希望能在这里用理少的时间 ...
- DataSet与DataTable对象
DataSet与DataTable对象 摘自:http://www.cnblogs.com/fttbfttb/articles/1509662.html DataSet对象 DataSet是ADO.N ...
- 项目中常用方法总结(将将DataTable数据集映射到实体对象)【转】
本篇把项目中用到的一些通用方法总结出来, 这些方法因为经常需要在项目中用到,所以把它们归纳在一起, 形成一个.dll 文件是一个理想的选择. 这样也便于日后缩短开发周期. 一. 把一个DataGrid ...
- DataTable对象
DataTable表示一个内存中的关系数据表,可以独立创建和使用,也可以有其他.NET Framework对象使用,最常见的情况是作为DataSet的成员使用.DataTable对象由DataColu ...
- 实体对象,List泛型 转换为DataTable
/// <summary> /// 实体对象转换DataTable /// </summary> /// <param name ...
- ADO.NET对象的详解
1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...
随机推荐
- 分享Linux系统快速入门法
相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴趣 ...
- Codeforces Round #597 (Div. 2)D(最小生成树)
/*每个点自己建立一座发电站相当于向超级源点连一条长度为c[i]的边,连电线即为(k[i]+k[j])*两点间曼哈顿距离,跑最小生成树(prim适用于稠密图,kruscal适用于稀疏图)*/ #def ...
- mongodb 用户指引
维护人:陈权 一.mongodb install on linuxcurl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...
- typo3 网站迁移
最近再弄这个typo3,虽然说看不怎么动,但是迁移嘛,最笨的办法就是整体过去,就是数据量太大了,哈哈,我先写一下我的笨办法: 注意:每个版本的typo3对php,mysql,apache的版本都有要求 ...
- Spring Boot Log 日志使用教程
我们编写任何 Spring Boot 程序,可能绕不开的就是 log 日志框架(组件). 在大多数程序员眼中日志是用来定位问题的.这很重要. 本项目源码下载 注意本项目提供的源码已在后期重新编写,有部 ...
- [蓝桥杯2017初赛]k倍区间 前缀和
题目描述 给定一个长度为N的数列,A1, A2, ... AN. 如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- 【PAT甲级】1064 Complete Binary Search Tree (30 分)
题意:输入一个正整数N(<=1000),接着输入N个非负整数(<=2000),输出完全二叉树的层次遍历. AAAAAccepted code: #define HAVE_STRUCT_TI ...
- CentOS7 安装 OpenCV 的一些问题解决办法
由于强迫症,实在受不了root权限的旧gcc才能使用boost而普通权限却是最新版gcc,经过一番折腾后,终于把配置全部弄好了,实际上就只需要把新版gcc的各个文件放到系统找到旧gcc的地方,并建立新 ...
- kubernetes从入门到放弃(二)
kubernetes对象之pod 1.pod的认识 Pod直译是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod).在Kubernetes中我们不会直接操作容 ...
- Vue学习笔记:v-bind 属性动态绑定
v-bind 的作用 v-bind指令可以将节点的属性与动态表达式绑定在一起 v-bind可以绑定html元素中的各种属性 例如: <a v-bind:href="xxx"& ...