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;
}
}
查看全文
相关阅读:
学习进度(第十四周)
学习进度(第十三周)
程序员修炼之道阅读笔记03
程序员修炼之道阅读笔记02
学习进度(第十二周)
冲刺进度条10
冲刺进度条09
冲刺进度条08
寒假学习进度报告2
寒假学习进度报告1
原文地址:https://www.cnblogs.com/adam/p/891324.html
最新文章
java通过原生类实现Hash查询
java实现对文件操作
java 方法 StringTokenizer
暑期第八周学习周总结
暑期第七周学习周总结
暑期第六周学习周总结
Pycharm破解教程(仅供个人学习,如有购买能力还是建议购买正版)
暑期第五周学习周总结
《一线架构师实践指南》Refined Architecture总论阅读笔记
每周总结(7)
热门文章
《大型网站技术架构:核心原理与案例分析》阅读笔记3
每周总结(6)
每周总结(5)
《大型网站技术架构:核心原理与案例分析》阅读笔记2
每周总结(4)
数据初级分析分类(4)
数据初级分析分类(3)
数据初级分析分类(2)
关于找水王的问题
关于输入法的评价
Copyright © 2011-2022 走看看