zoukankan
html css js c++ java
IList<T> 转换成 DataSet
通过 NHibernate 查询返回的表数据通常都是
IList<T>
,但在实际使用中有些数据控件在数据绑定上对IList的支持并不是很好,所以有时候将IList转换成DataSet还是有必要的。在
Vinson的Blogs
中提到了怎么
将IList转换成DataSet
,可惜源码是VB.NET的。
下面是我根据
IList转换成DataSet
中的VB.NET源码转换成C#,由于现在做项目是用 VS 2005 ,所以也对其改进,让它支持C#2.0 中的泛型。
代码如下:
using
System;
using
System.Data;
public
class
NHibernateHelper
{
/**/
///
<summary>
///
Ilist
<T>
转换成 DataSet
///
</summary>
///
<param name="list"></param>
///
<returns></returns>
public
static
DataSet ConvertToDataSet
<
T
>
(IList
<
T
>
list)
{
if
(list
==
null
||
list.Count
<=
0
)
{
return
null
;
}
DataSet ds
=
new
DataSet();
DataTable dt
=
new
DataTable(
typeof
(T).Name);
DataColumn column;
DataRow row;
System.Reflection.PropertyInfo[] myPropertyInfo
=
typeof
(T).GetProperties(System.Reflection.BindingFlags.Public
|
System.Reflection.BindingFlags.Instance);
foreach
(T t
in
list)
{
if
(t
==
null
)
{
continue
;
}
row
=
dt.NewRow();
for
(
int
i
=
0
, j
=
myPropertyInfo.Length; i
<
j; i
++
)
{
System.Reflection.PropertyInfo pi
=
myPropertyInfo[i];
string
name
=
pi.Name;
if
(dt.Columns[name]
==
null
)
{
column
=
new
DataColumn(name, pi.PropertyType);
dt.Columns.Add(column);
}
row[name]
=
pi.GetValue(t,
null
);
}
dt.Rows.Add(row);
}
ds.Tables.Add(dt);
return
ds;
}
}
查看全文
相关阅读:
Netty
HttpClient 该知道一些概念
Hibernate QBC 简单收集
IUAP--单点登录
js图片压缩和上传并显示
vue移动端项目
js自定义滚动条
mysql5.7以上版本安装
学习webpack
学习es6
原文地址:https://www.cnblogs.com/yyw84/p/463480.html
最新文章
shift键有什么用?怎么用?shift键的妙用
谷歌浏览器怎样把网页全部内容保存为.mhtml文件?
Chrome保存整个网页为图片(终极解决方案!)
阿里云怎么查看网站信息和账号信息?
win2000安装AD目录
任务管理器已被系统管理员停用的解决方法
[SDOI2016]征途
斜率优化
[八省联考2018]劈配
[ZJOI2012]网络
热门文章
线性基
[HNOI2015]亚瑟王
[国家集训队]middle
[国家集训队]Crash的数字表格
[HAOI2011]Problem b
[SDOI2015]约数个数和
解决 tomcat 重启上传文件消失
JS 防止重复提交
JS 日期比较
Redis 扫盲
Copyright © 2011-2022 走看看