IEnumerable<T>转DataTable,为空怎么办?
public static class DataConvertor
{
public static DataTable ToDataTable<T>(IEnumerable<T> data)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
var table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
} public static DataTable ToDataTable(IRfcTable rfcTable)
{
DataTable table = new DataTable();
int liElement = ;
for (liElement = ; liElement <= rfcTable.ElementCount - ; liElement++)
{
RfcElementMetadata metadata = rfcTable.GetElementMetadata(liElement);
table.Columns.Add(metadata.Name); //循环创建列
}
foreach (IRfcStructure dr in rfcTable) //循环table结构表
{
DataRow row = table.NewRow(); //创建新行
for (liElement = ; liElement <= rfcTable.ElementCount - ; liElement++)
{
RfcElementMetadata metadata = rfcTable.GetElementMetadata(liElement);
row[metadata.Name] = dr.GetString(metadata.Name).Trim();
}
table.Rows.Add(row);
} return table;
}
}
IEnumerable<T>转DataTable,为空怎么办?的更多相关文章
- asp.net,C#操作数据库DataTable关于空null的判断
double d=0;if(!Convert.IsDBNull(DataTable.Rows[i][m])){ string str=DataTable.Rows[i][m].ToString( ...
- 程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
public static DataTable Join(DataTable First, DataTable Second, DataColumn[] FJC, DataColumn[] SJC) ...
- DataTable与DTO对象的简易转换类
在web开发过程中,有时候为了数据传输的方便,比如:后台需要更新前端的ViewModel,此时我们定义一个与前端ViewModel结构一样的DTO对象,从数据层获取数据后,将数据封装成DTO然后序列化 ...
- C# DataTable 和List之间相互转换的方法
介绍:List/IEnumerable转换到DataTable/DataView,以及DataTable转换到List 正文: 一.List<T>/IEnumerable转换到DataTa ...
- LINQ查询返回DataTable类型
个人感觉Linq实用灵活性很大,参考一篇大牛的文章LINQ查询返回DataTable类型 http://xuzhihong1987.blog.163.com/blog/static/267315872 ...
- 转 C# DataTable 和List之间相互转换的方法
一.List/IEnumerable转换到DataTable/DataView 方法一: /// <summary> /// Convert a List{T} to a DataTabl ...
- datatable list 之前相互转换
使用 FastMember: IEnumerable<SomeType> data = ... DataTable table = new DataTable(); using(var r ...
- Var To DataTable
public static DataTable CopyToDataTable<T>(this IEnumerable<T> array) { var ret = new Da ...
- Linq实现DataTable的分组统计
DataTable dt = GetTestData(10); //获取10条测试数据 var queryByService = from r in dt.AsEnumerable() group r ...
随机推荐
- 为什么有时候人们用translate来改变位置而不是定位?
translate()是transform的一个值. 改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)(复 ...
- scrapy 基础组件专题(一):scrapy框架中各组件的工作流程
Scrapy 使用了 Twisted 异步非阻塞网络库来处理网络通讯,整体架构大致如下(绿线是数据流向): Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事 ...
- celery 错误相关:Monkey-patching not on the main thread; threading.main_thread().join() will hang from a greenlet
/Users/wangpingyang/.pyenv/versions/3.7.2/lib/python3.7/site-packages/httprunner/__init__.py:5: Monk ...
- ASP.NET Core端点路由 作用原理
端点路由(Endpoint Routing)最早出现在ASP.NET Core2.2,在ASP.NET Core3.0提升为一等公民. Endpoint Routing的动机 在端点路由出现之前,我们 ...
- The Modules of Event-driven
常用的时间驱动模型(Windows和Linux都有)有三种: 1.select 对于读(Read)事件.写(Write)事件和异常(Exception)事件分别创建事件描述符集合,分别用来收集读事件的 ...
- 使用Vue做出跑马灯效果
<div id="pmd"> <h4> {{msg}}</h4> <input type="b ...
- bzoj3381[Usaco2004 Open]Cave Cows 2 洞穴里的牛之二*
bzoj3381[Usaco2004 Open]Cave Cows 2 洞穴里的牛之二 题意: RMQ问题.序列长度≤25000,问题数≤25000. 题解: 倍增. 代码: #include < ...
- (4)webpack中配置css,scss,less第三方loader
为什么要使用第三方loader 一般引入样式文件,我们会在html中引入样式标签. 很明显,这样就跟之前在script中引入js文件一样,会导致二次请求.我们希望webpack像处理js文件一样处理样 ...
- (1)为什么要使用webpack?
1.在网页中有哪些常见的静态资源? Js: .js .jsx .coffee .ts Css: .css .less .sass .scss Images: .jpg .png .gif .bmp . ...
- Python Hacking Tools - Port Scanner
Socket Programming 1. Scan the target Vulnerable Server. And test it by telnet. 2. Write the scanne ...