zoukankan
html css js c++ java
IList及泛型集合类转换DataTable
/**/
///
<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)
{
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
)
{
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;
}
查看全文
相关阅读:
Struts2 拦截器(interceptor) 与 模型驱动3中传值方式
Struts2 OGNL表达式
ThreadLocal 是什么
struts2的值栈(重点) 值栈是一个存储数据的内存结构 本质是一个接口 它的实现类OgnlValueStack
Struts2 普通的java类 (Action)与Servlet通信 主要对象那个ServletActionContext 与 ActionContext对象来获取servlet中request对象和response对象
struts2是多例的
Django中一个项目里怎么使用两个数据库
MYSQL中的锁
详解Linux中文乱码问题终极解决方法
Docker-compose up时报错:
原文地址:https://www.cnblogs.com/zhahost/p/1212470.html
最新文章
Spring之AOP
注解和反射
Java中的Class类对象
Spring之静态/动态代理模式
Spring之使用注解开发
Spring之自动装配
maven 默认仓库地址的更换
rabbitmq笔记
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 10.x
springboot集成flyway,数据库是oracle
热门文章
【嘎】字符串-左旋转字符串
【嘎】数组-杨辉三角
【嘎】树-二叉树的直径
【嘎】数组-加一
【嘎】字符串-有效的括号
【嘎】数组-买卖股票的最佳时机
SpringMvc 控制器实现的几种方式(重点理解注解方式@Controller 和RequestMapping())
SpringMvc 多个URl访问路径指向同一个Controller类
SpringMvc入门案例 (SpringMvc 是单例的)
Struts2文件的上传
Copyright © 2011-2022 走看看