Dict.CN 在线词典, 英语学习, 在线翻译
天道酬勤
用一辈子做好一件事
博客园
社区
首页
新随笔
管理
IList--->DataTable
using
System.Collections;
using
System.Reflection;
using
System.Data;
using
System;
public
class
CADataConverter
{
private
static
Hashtable types
=
new
Hashtable();
private
CADataConverter()
{ }
public
static
DataTable ToDataTable(IList list)
{
if
(list
==
null
)
{
throw
new
ArgumentNullException(
"
List
"
,
"
List can't be null
"
);
}
if
(list.Count
<
1
)
{
throw
new
ArgumentOutOfRangeException(
"
List
"
,
"
List can't be empty
"
);
}
object
obj
=
list[
0
];
if
(obj
==
null
)
{
throw
new
ArgumentOutOfRangeException(
"
List
"
,
"
First imem can't be null
"
);
}
//
return
ToDataTable(list, obj.GetType());
}
public
static
DataTable ToDataTable(IList list,Type t)
{
DataTable dt
=
(DataTable)types[t];
if
(dt
==
null
)
{
CreateShell(t);
}
else
{
dt
=
dt.Clone();
}
if
(list
==
null
||
list.Count
<
1
)
{
return
dt; }
foreach
(
object
item
in
list)
{
if
(item
==
null
)
{
DataRow dr
=
dt.NewRow();
/**/
/*
dr[0]=
dr[1]=
*/
foreach
(DataColumn col
in
dt.Columns)
{
dr[col.ColumnName]
=
t.GetProperty(col.ColumnName).GetValue(item,
null
);
}
dt.Rows.Add(dr);
}
}
return
dt;
}
protected
static
DataTable CreateShell(Type t)
{
DataTable dt
=
new
DataTable(t.Name);
PropertyInfo[] infos
=
t.GetProperties();
foreach
(PropertyInfo info
in
infos)
{
if
(info.CanRead)
{
string
str
=
info.PropertyType.ToString();
switch
(str)
{
case
"
System.String
"
:
case
"
System.Int32
"
:
case
"
System.Boolean
"
:
case
"
System.Double
"
:
case
"
System.Guid
"
:
dt.Columns.Add(info.Name, info.PropertyType);
break
;
}
}
}
types[t]
=
dt;
return
dt;
}
}
posted @ 2008-05-03 19:37
Robot·H
阅读(39)
评论(0)
编辑
收藏
DataTable" trackback:ping="http://www.cnblogs.com/RobotH/services/trackbacks/1180528.aspx" /> -->
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
不要在WCF service中使用TypedDataset或DataTable作为数据传输载体
关于TypedDataTable 、 DataTable 、 ArrayList 、 IList 、
IList及泛型集合类转换DataTable
IList转DataTable
将 IList 或 IList 转换为Dataset或DataTable
IList转换为DataTable
相关链接:
最新IT新闻:
Google 10周年大事记
Google上下二十年
中华英才网面临外资吞并
软件收入百强张榜 华为中兴海尔列前三
马云vs孙正义:两个“疯子”的对话
博客园新闻频道
博客园首页
社区
公告
IT新闻:
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
搜索
随笔分类
.NetFramework(6)
(rss)
Ajax(2)
(rss)
Ajax
(rss)
asp.Net2.0(49)
(rss)
C#2.0(35)
(rss)
CSS+Javacript(20)
(rss)
EC(6)
(rss)
English(2)
(rss)
Interview(2)
(rss)
Office Forms Server+SharePoint Server(1)
(rss)
ProgramLife(28)
(rss)
Sqlserver(26)
(rss)
TechBase(13)
(rss)
UML(3)
(rss)
XML(4)
(rss)
每日一句英语(2)
(rss)
美食天下(2)
(rss)
Asp.Net
.Net Ajax`
4guysfromrolla
C#开源
CodeProject
c-sharpcorner.com
DoFactory
DoFactory之设计模式
IT实验室
MS Forums
MSDN Code Gallery
SilverLight
sourceforge.net
UML
w3schools
w3school中文
博客堂
说故事、学模式
万年历
职场生涯
组件开发
Book Online
杜拉拉升职计
你在为谁工作
Company
facebook
youtube
掘客
康盛创想
DB
SqlServer Magazine
SqlServerCenter
邹建
EC
facebook 研究系列
open platform
艾瑞
创意纪
电子商务博客
胡宝洁
开心
开心网
麦田
亚马逊
詹鹏
English
bjEnglish
China Daily
EnglishTown
i词霸
language_tools
NBC
华尔街英语
friend
5721美食
NzPerfec
JS+CSS+XML+DOM
Ajax基础教程 - 免费试读 - book.csdn.net
SAX
xml bbs
UML
ArgoUML
积分与排名
积分 - 31093
排名 - 1322
最新评论
1. re: [转帖].Net pet shop 4 和 MSMQ
晕仔细看看,才发现区别,用中文直接说明把MACHINNAME改为“.”或者你的机器名不是更好吗?唉!写文章也是要讲方法的! (fff)
2. re: [转帖].Net pet shop 4 和 MSMQ
修改<add key="OrderQueuePath" value="FormatName:DIRECT=OS:MACHINNAME\\Private$\\PSOr... (fff)
3. re: 毛驴进城
建议发到非技术区 (李胜攀)
4. re: 毛驴进城
挺搞笑的,就是发到新手区就不太好了吧 (MadGoat)
5. re: C# XML入门经典——C#编程人员必备的XML技能
学无止境。。。
(Robot·H)