- 浏览: 228825 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
net_liu:
zxptian 写道楼主能把TransferFiles也贴出来 ...
c# Socket 文件的传输 -
zxptian:
楼主能把TransferFiles也贴出来分享下吗?
c# Socket 文件的传输
List转DataTable(反射)
/// <summary>
/// 将集合类转换成DataTable
/// </summary>
/// <param name="list">集合</param>
/// <returns></returns>
public static DataTable ToDataTable(IList list)
{
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
}
/// <summary>
/// 将泛型集合类转换成DataTable
/// </summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="list">集合</param>
/// <returns>数据集(表)</returns>
public static DataTable ToDataTable<T>(IList<T> list)
{
return ConvertX.ToDataTable<T>(list, null);
}
/// <summary>
/// 将泛型集合类转换成DataTable
/// </summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="list">集合</param>
/// <param name="propertyName">需要返回的列的列名</param>
/// <returns>数据集(表)</returns>
public static DataTable ToDataTable<T>(IList<T> list, params string[] propertyName)
{
List<string> propertyNameList = new List<string>();
if (propertyName != null)
propertyNameList.AddRange(propertyName);
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
if (propertyNameList.Count == 0)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
else
{
if (propertyNameList.Contains(pi.Name))
result.Columns.Add(pi.Name, pi.PropertyType);
}
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
if (propertyNameList.Count == 0)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
else
{
if (propertyNameList.Contains(pi.Name))
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
}
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
}
发表评论
-
DataTable转泛型
2012-01-31 17:39 1234DataTable转泛型 public clas ... -
利用鼠标钩子将鼠标中键转为左键
2011-05-04 13:50 1616利用鼠标钩子将鼠标中键转为左键 鼠标 ... -
C# 命名规范
2011-04-01 13:32 1931C# 命名规范 文章分类:.net编程 ... -
VS2008 快捷键大全
2011-04-01 13:30 884VS2008 快捷键大全[转帖] 文章分类 ... -
C# 中的委托和事件
2011-04-01 13:26 1224缩略显示 C# 中的委托和事件 文章 ... -
C#Winform限制Textbox只能输入数字
2011-04-01 13:20 7452C#Winform限制Textbox ... -
C# 跳转语句(break,continue,goto,return,throw)
2011-04-01 12:38 3370C# 跳转语句(break,continue,goto,r ... -
C#窗体固定在桌面上
2010-11-19 10:25 1594[DllImport("user32.dll& ... -
cookie记住密码
2010-11-10 12:58 2266cookie记住密码: /// <summary> ... -
if-else 都输出的方法
2010-10-12 11:44 1260if-else 都输出的方法 if (new Func< ... -
反射技术
2010-09-15 17:42 890什么是反射? 反射就 ... -
发一个接口做参数的例子
2010-08-06 08:48 923发一个接口做参数的例子 回头接口 using System ... -
C#中使用正则表达式
2010-08-04 13:39 1301C#中的正则表达式包含 ... -
C#的几个技巧
2010-08-04 13:35 8151.如果可能尽量使用接 ... -
反射动态调用类成员
2010-08-04 13:30 950使用反射动态调用类成员,需要Type类的一个方法:Invoke ... -
在vs2005中发送邮件
2010-08-03 16:14 1112在vs2005中发送邮件的方法如下: ... -
XML数据排序
2010-06-30 14:20 3372根据XML数据的Index 来进行排序 方法一: ... -
程序动态升级版本
2010-06-30 10:00 958C#实现程序动态升级版本。通过反射获取本地版本,然后跟服务器中 ... -
验证码生成
2010-06-25 16:48 857namespace WebApplication1.验证码 ... -
将DataGridView 数据导出到Excel
2010-06-25 15:46 5063/// <summary> ...
相关推荐
将datatable转换为实体类LIST,运用了反射和泛型的技术
利用反射和泛型 把Datatable转化为List 1
前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型)。第一反应,我想肯定要用到“泛型”(这不是废话吗?都说了要转换成List泛型集合了),而且还要用到“反射”...
类泛型的约束: 代码如下: public static class ToModel<T> where T : class, new() 定义委托: 代码如下:public delegate void SetString(string value); 创建委托方法: 代码如下: private static SetString ...
在使用三层架构开发一个网站时,希望把DataTable对象转换为List对象,于是在网上找资料,总结一个比较方便的方法来实现——使用反射。 思路: 初始化一个List对象 获取到T所有的属性,初始化一个T对象 遍历所有属性...
NPOL网上有返回DataTable,我自己编写了个泛型版的。
前段时间做了一个练手的小项目,名叫Book_Bar,用来卖书的,采用的是三层架构,也就是Models,IDAL,DAL,BLL 和 Web , 在DAL层中各个类中有一个方法比较常用,那就是RowToClass ,顾名思义,也就是将DataTable 中...
使用datatable内置的分页,排序 使用attribute+反射来控制需要排序和显示的字段以及顺序 分离排序和显示逻辑 若要添加搜索逻辑只需要传递搜索的字段到后端即可(js初始化时把”searching”: false拿掉)。 View : @...
此帮助类为NPOI读取读取EXCEL的帮助类,其中.Net Framework版本为4.6,NPOI版本为2.4.1.0,通过NPOI读取EXCEL之后,使用反射的方式将对应的Datatable转换为相应的List,具体可参考附件中代码
一个.net将数据导出到excel的源码,用反射机制导出List到excel,也可将DataTable导出到excel,样式可以灵活修改
反射操作辅助类,如获取或设置字段、属性的值等反射信息。(ReflectionUtil.cs) 注册表操作辅助类(RegistryHelper.cs) 用于验证码图片识别的类(UnCodebase.cs) 将原始字串转换为unicode,格式为\u.\u.( ...
12. 反射操作辅助类,如获取或设置字段、属性的值等反射信息。(ReflectionUtil.cs) 13. 注册表操作辅助类(RegistryHelper.cs) 14. 用于验证码图片识别的类(UnCodebase.cs) 15. 将原始字串转换为unicode,格式为\u...
12.反射操作辅助类,如获取或设置字段、属性的值等反射信息。(ReflectionUtil.cs) 13.注册表操作辅助类(RegistryHelper.cs) 14.用于验证码图片识别的类(UnCodebase.cs) 15.将原始字串转换为unicode,格式为\u.\u....
如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/...
3.1.4 CheckBOX和CheckBoxList控件应用 3.1.5 RadioButton和RadioButtonList控件应用 3.2 ASP.NET 2.0新增控件 3.2.1 BulletedList控件的应用 3.2.2 Substitution控件的应用 3.2.3 Wizard控件的应用 3.2.4 ...