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;
}
}
查看全文
相关阅读:
通过线程池,从hbase中拿数据
phoenix如何压缩表,以及如何映射表
spring boot改造现有jms activeMQ配置
windows安装redis
mysql免安装版配置
转发和重定向的区别
object.equals(null)和object==null区别
用IDEA学习getRealPath遇到的问题
总误按win+Enter键弹出讲述人
戴尔电脑插耳机后声音变化问题
原文地址:https://www.cnblogs.com/yyw84/p/463480.html
最新文章
小程序转发 搜索wxml
小程序登录 浏览收藏与点赞
小程序发起网络请求
小程序缓存
数据库学习 day1 认识数据库
数据库学习 day2 检索数据
HashMap扩容阈值
Redis之自我学习
window.navigator.userAgent用来区分设备和浏览器
Java并发之线程(一)
热门文章
MySql之批量update产生的DeadLock问题
JS向页面select添加元素 设置默认选中并移除点击下拉事件
RSA算法加密 工具类
PostgreSQL 根据字段名查询所在表
TortoiseSVN上传文件显示被锁定
java类资源加载顺序
剪绳子游戏
scala中var和val的区别
scala中break和java中的break有什么不同
本地数据导入到hbase表中。
Copyright © 2011-2022 走看看