zoukankan
html css js c++ java
IListHelper 实现IList到DataSet和DataTable的数据转换
/**/
///
<summary>
///
List Transfer DataTable Class
///
</summary>
public
class
IListHelper
{
/**/
///
<summary>
///
Ilist
<T>
Transfer DataSet
///
</summary>
///
<param name="i_objlist"></param>
///
<returns></returns>
public
static
DataSet ConvertToDataSet
<
T
>
(IList
<
T
>
i_objlist)
{
if
(i_objlist
==
null
||
i_objlist.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
i_objlist)
{
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;
}
/**/
///
<summary>
///
Ilist
<T>
Transfer DataTable
///
</summary>
///
<param name="i_objlist"></param>
///
<returns></returns>
public
static
DataTable ConvertToDataTable
<
T
>
(IList
<
T
>
i_objlist)
{
if
(i_objlist
==
null
||
i_objlist.Count
<=
0
)
{
return
null
;
}
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
i_objlist)
{
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);
}
return
dt;
}
/**/
///
<summary>
///
Ilist Transfer DataTable
///
</summary>
///
<param name="i_objlist"></param>
///
<returns></returns>
public
static
DataTable ConvertToDataTable(IList i_objlist)
{
if
(i_objlist
==
null
||
i_objlist.Count
<=
0
)
{
return
null
;
}
DataTable dt
=
new
DataTable();
DataRow row;
System.Reflection.PropertyInfo[] myPropertyInfo
=
i_objlist[
0
].GetType().GetProperties();
foreach
(System.Reflection.PropertyInfo pi
in
myPropertyInfo)
{
if
(pi
==
null
)
{
continue
;
}
dt.Columns.Add(pi.Name, System.Type.GetType(pi.PropertyType.ToString()));
}
for
(
int
j
=
0
; j
<
i_objlist.Count; j
++
)
{
row
=
dt.NewRow();
for
(
int
i
=
0
; i
<
myPropertyInfo.Length; i
++
)
{
System.Reflection.PropertyInfo pi
=
myPropertyInfo[i];
row[pi.Name]
=
pi.GetValue(i_objlist[j],
null
);
}
dt.Rows.Add(row);
}
return
dt;
}
/**/
///
<summary>
///
Ilist Transfer DataSet
///
</summary>
///
<param name="i_objlist"></param>
///
<returns></returns>
public
static
DataSet ConvertToDataSet(IList i_objlist)
{
if
(i_objlist
==
null
||
i_objlist.Count
<=
0
)
{
return
null
;
}
DataSet ds
=
new
DataSet();
DataTable dt
=
new
DataTable();
DataRow row;
System.Reflection.PropertyInfo[] myPropertyInfo
=
i_objlist[
0
].GetType().GetProperties();
foreach
(System.Reflection.PropertyInfo pi
in
myPropertyInfo)
{
if
(pi
==
null
)
{
continue
;
}
dt.Columns.Add(pi.Name, System.Type.GetType(pi.PropertyType.ToString()));
}
for
(
int
j
=
0
; j
<
i_objlist.Count; j
++
)
{
row
=
dt.NewRow();
for
(
int
i
=
0
; i
<
myPropertyInfo.Length; i
++
)
{
System.Reflection.PropertyInfo pi
=
myPropertyInfo[i];
row[pi.Name]
=
pi.GetValue(i_objlist[j],
null
);
}
dt.Rows.Add(row);
}
ds.Tables.Add(dt);
return
ds;
}
}
查看全文
相关阅读:
一本通1647迷路
一本通1646GT 考试
矩阵
矩阵快速幂
数学基础
清北学堂学习经验(论颓废)
钟皓曦第二天讲课
P3275 [SCOI2011]糖果
P1270 “访问”美术馆
P2015 二叉苹果树
原文地址:https://www.cnblogs.com/adam/p/891324.html
最新文章
HDU 4507 吉哥系列故事――恨7不成妻(数位DP+结构体)
Codeforces 55D
bzoj 1926: [Sdoi2010]粟粟的书架
bzoj 2001: [Hnoi2010]City 城市建设
bzoj 1997: [Hnoi2010]Planar
bzoj 1996: [Hnoi2010]chorus 合唱队
bzoj 4538: [Hnoi2016]网络
bzoj 4542: [Hnoi2016]大数
bzoj 4826: [Hnoi2017]影魔
bzoj 4830: [Hnoi2017]抛硬币
热门文章
【NOIP 2017】列队
【NOIP 2017】逛公园
一本通1655数三角形
一本通1654车的放置
一本通1653方程的解
一本通1652牡牛和牝牛
一本通1651【例 4】古代猪文
一本通1650【例 3】组合
一本通1649【例 2】2^k 进制数
一本通1648【例 1】「NOIP2011」计算系数
Copyright © 2011-2022 走看看