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;
}
}
查看全文
相关阅读:
学习进度笔记
学习进度笔记
学习进度笔记
《一级架构师》阅读笔记
学习进度笔记
学习进度笔记
学习进度笔记
mysql
error: 'wblog/' does not have a commit checked out
有用的网页
原文地址:https://www.cnblogs.com/adam/p/891324.html
最新文章
unboxing .. may produce NullPointerException
在类字段上使用@Autowired警告Field injection is not recommended
windows安装mysql
计算机中浮点数的表示方法
常用Linux发行版操作系统大盘点
双链表的删除和插入的时间复杂度
二路归并排序
以太网
局域网的概括
网络层和传输层
热门文章
OSI/RM各层的功能
数据通信系统
计算机网络基础
..
捡的
学习JS的第三天
学习JS的第二天
学习进度笔记
学习进度笔记
学习进度笔记
Copyright © 2011-2022 走看看