zoukankan
html css js c++ java
使用反射机制将一个类实例的值赋给DataTable某一行
类中的字段类型和数据库(datatable)中的字段类型需要一直,大小写无关. 类中的可以有datatable没有的属性
源代码如下:
Code
/**/
///
<SUMMARY>
///
依据反射机制从bean中取值赋给datatable的某行
///
</SUMMARY>
///
<PARAM name="obj" />
要实例的对象
///
<PARAM name="dataTable" />
DataTable
///
<PARAM name="row" />
要读取DataTable行的序号
public
static
void
InstanBeanFromDataTable(Object obj, DataTable dataTable,
int
row)
{
//
指定行不存在
if
(dataTable.Rows.Count
<
(row
+
1
))
{
throw
new
Exception(
"
指定行不存在!
"
);
}
//
DataTable列为空!
if
(dataTable.Columns.Count
<
1
)
{
throw
new
Exception(
"
DataTable列为空!
"
);
}
Type type
=
obj.GetType();
//
获取对象类型
PropertyInfo[] pInfos
=
type.GetProperties();
try
{
for
(
int
i
=
0
; i
<
dataTable.Columns.Count; i
++
)
//
循环所有列
{
for
(
int
j
=
0
; j
<
pInfos.Length; j
++
)
//
循环所有属性
{
//
比较的作用是防止数据库列名的大小写和属性的大小写不一致
if
(dataTable.Columns[i].ColumnName.ToLower()
==
pInfos[j].Name.ToLower())
{
PropertyInfo pInfo
=
type.GetProperty(pInfos[j].Name);
//
反射机制,动态检索类属性
object
beanValue
=
pInfo.GetValue(obj,
null
);
//
不同的基本数据类型,比如用Convert方法转换成对应类型的值
if
(
!
Convert.IsDBNull(beanValue)
&&
beanValue.ToString()
!=
null
)
//
如果数据集中此列有值
{
dataTable.Rows[row][i]
=
beanValue;
}
else
{
dataTable.Rows[row][i]
=
DBNull.Value;
}
break
;
}
}
}
}
catch
(Exception ex)
{
//
不捕获异常,异常抛出由开发人员处理
throw
ex;
}
}
查看全文
相关阅读:
mac github访问不稳定解决办法
前后端项目部署-2, flask+Gunicorn+gevent,docker部署,
前后端项目部署-1, flask,只有flask,一个最简单的flask项目部署到Docker的过程,
mac,VMware,安装centos7,虚拟机,无界面
深网简介
mitmproxy抓包工具使用 for mac
安卓抓取的另外一种思路
安卓手机设置权限,adb pull permission denied解决办法
爬虫工程师到底为什么要学习安卓逆向?
爬虫工程师日常都是做什么。
原文地址:https://www.cnblogs.com/gossip/p/1382614.html
最新文章
pyhon 字典表达式处理cookies headers
浅谈js逆向之发展历史(转)(有用)
免费接口api测试
selenium自带抓包的使用,desired_capabilities
爬虫部署-3,爬虫管理平台,Crawlab、Gerapy、Scrapydweb,SpiderKeeper,scrapyd,基于上述平台,构思自己的爬虫管理平台
爬虫部署-2,基于Docker的Scrapy+Scrapyd+Scrapydweb部署
爬虫部署-1,服务端安装使用scrapyd,客户端安装scrapy-client,利用scrapy-client 发布爬虫到远程服务端
pycharm --mark Directory as -sources root
3-后端flask
2-前端vue
热门文章
1-项目构思
mac 查看硬盘占用情况
前后端项目部署-6, flask+Gunicorn+gevent+supervisor+nginx+redis+mysql+mongodb+vue,docker-compose部署
curl 用法
mac 上面禁用一个终端命令
python连接mysql
前后端项目部署-5, flask+Gunicorn+gevent+supervisor+nginx+redis+mysql+mongodb,docker-compose部署
前后端项目部署-4, flask+Gunicorn+gevent+supervisor+nginx+redis,docker-compose部署
前后端项目部署-3, flask+Gunicorn+gevent+supervisor,docker部署,以及supervisor的使用
pip配置镜像源
Copyright © 2011-2022 走看看