博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataTable转换为其他对象
阅读量:4981 次
发布时间:2019-06-12

本文共 3173 字,大约阅读时间需要 10 分钟。

1.将DataTable类型的数据转换成List<T>集合

1 ///  2 /// 将DataTable类型的数据转换成List
集合 T实体 3 ///
4 ///
5 /// 6 ///
7 public static List
DataTableToList
(DataTable dataTable) 8 { 9 List
list = new List
();10 Type targetType = typeof(T);11 PropertyInfo[] allPropertyArray = targetType.GetProperties();12 foreach (DataRow rowElement in dataTable.Rows)13 {14 T element = Activator.CreateInstance
();15 foreach (DataColumn columnElement in dataTable.Columns)16 {17 foreach (PropertyInfo property in allPropertyArray)18 {19 if (property.Name.Equals(columnElement.ColumnName))20 {21 if (rowElement[columnElement.ColumnName] == DBNull.Value)22 {23 property.SetValue(element, null, null);24 }25 else26 {27 property.SetValue(element, rowElement28 [columnElement.ColumnName], null);29 }30 }31 }32 }33 list.Add(element);34 }35 return list;36 }
View Code

 2.将DataTable的第一行转换为实体T 表转实体

1 ///  2 /// 将DataTable的第一行转换为实体T 表转实体 3 ///  4 /// 
5 /// 6 ///
7 public static T DataTalbeToEntity
(DataTable dataTable) 8 { 9 T element = Activator.CreateInstance
();10 Type targetType = typeof(T);11 PropertyInfo[] allPropertyArray = targetType.GetProperties();12 if (dataTable != null && dataTable.Rows.Count > 0)13 {14 DataRow rowElement = dataTable.Rows[0];15 foreach (DataColumn columnElement in dataTable.Columns)16 {17 foreach (PropertyInfo property in allPropertyArray)18 {19 if (property.Name.Equals(columnElement.ColumnName))20 {21 if (rowElement[columnElement.ColumnName] == DBNull.Value)22 {23 property.SetValue(element, null, null);24 }25 else26 {27 property.SetValue(element, rowElement28 [columnElement.ColumnName], null);29 }30 }31 }32 }33 }34 else35 {36 return default(T);//返回null37 }38 return element;39 }
View Code

3.根据情况对DaTaTable进行分页

1 ///  2 /// 根据情况对DaTaTable进行分页 3 ///  4 /// 
5 public static DataTable GetPageTable(DataTable dt, int CurrentPageIndex, int PageSize, ref int RecordCount) 6 { 7 DataTable newdt = dt.Clone(); 8 RecordCount = dt.Rows.Count; 9 for (int i = (CurrentPageIndex - 1) * PageSize; i < CurrentPageIndex * PageSize; i++)10 {11 if (i < RecordCount)12 {13 newdt.Rows.Add(dt.Rows[i].ItemArray);14 }15 }16 return newdt;17 }
View Code

 

转载于:https://www.cnblogs.com/flycloudliestar/p/6209410.html

你可能感兴趣的文章
test
查看>>
关于Debug certificate expired的问题
查看>>
移动端浏览器有哪些,内核分别是什么
查看>>
利用python实现简单随机验证码
查看>>
ExtJs4 笔记 Ext.Panel 面板控件、 Ext.window.Window 窗口控件、 Ext.container.Viewport 布局控件...
查看>>
Django框架—ORM操作笔记
查看>>
FireDAC如何连接ORACLE数据库
查看>>
(转)logback配置详解
查看>>
解决电脑系统卡、慢 3分钟成为高手!
查看>>
9. Palindrome Number
查看>>
52. N-Queens II
查看>>
ORA-01555错误总结(二)
查看>>
flask简单demo
查看>>
SSH
查看>>
卷积神经网络—第一周
查看>>
如何形容这份美?
查看>>
linux 新增硬盘分区格式化
查看>>
暴零狗的泉五之旅 8-21
查看>>
【bzoj2431】[HAOI2009]逆序对数列 dp
查看>>
7 天玩转 ASP.NET MVC — 第 6 天
查看>>