C#如何将对象数组转换成DataSet
来源:互联网 发布:windows ping 1500 编辑:程序博客网 时间:2024/05/16 17:24
在微软的.net开发类库中,我们找不到现成转换方法,所以就需要考虑自行开发这个功能了,然而实现起来并不是很复杂,其中要用到的主要技术就是反射。利用反射,我们能够获取该对象数组中对象的每一个属性,包括其名称、类型,然后利用这些信息来创建DataSet中数据表的Schema,当创建完成以后,将该对象数组的每一个对象的属性数据复制到刚才创建的数据表中,这样就很简单的完成了该功能的实现,还是用代码来说的更清楚些:
文件:objectArrayToDataSet.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Reflection;
public class ArrayToDataSet
{
public static DataSet ObjectArrayToDataSet(object[] objArr)
{
if (objArr.Length == 0)
return null;
DataSet ds = CreateDataSet(objArr[0].GetType());
ds = FillDataSet(ds, objArr);
return ds;
}
public static DataSet CreateDataSet(Type t)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.Tables.Add(dt);
PropertyInfo[] pis = t.GetProperties();
foreach (PropertyInfo pi in pis)
{
DataColumn dc = new DataColumn(pi.Name, pi.PropertyType);
dt.Columns.Add(dc);
}
return ds;
}
public static DataSet FillDataSet(DataSet ds, object[] objArr)
{
DataColumnCollection dcs = ds.Tables[0].Columns;
Type t = objArr[0].GetType();
foreach (object obj in objArr)
{
DataRow dr = ds.Tables[0].NewRow();
for (int i = 0; i < dcs.Count; i++)
{
dr[i] = t.InvokeMember(dcs[i].ColumnName, BindingFlags.GetProperty, null, obj, null);
}
ds.Tables[0].Rows.Add(dr);
}
return ds;
}
}
- C#如何将对象数组转换成DataSet
- 如何将对象数组转换成DataSet
- 如何将对象数组转换成DataSet
- C#将对象数组转换成DataSet使用案例
- ASP.net:如何将对象数组转换成DataSet
- c#将List<T>转换成DataSet
- c# 将xml内容转换成DataSet
- 将Xml字符串转换成(DataTable || DataSet || XML)对象
- 将Xml字符串转换成(DataTable || DataSet || XML)对象
- 怎样用C# LINQ将DataSet转换成List?
- C#中的DataSet、string、DataTable 、对象转换成Json
- C#中的DataSet、string、DataTable 、对象转换成Json
- C#中的DataSet、string、DataTable 、对象转换成Json
- C#中的DataSet、string、DataTable 、对象转换成Json
- C#中的DataSet、string、DataTable 、对象转换成Json
- 将dataset转换成xml
- 将DataSet转换成List
- 如何将一个java对象(包括java对象数组、集合)转换成一个json字符串
- asp.net 页面事件执行顺序
- 要节制饮食了
- 立
- 转 sizeof
- asp重定向-response.redirect和server.transfer/server.execute
- C#如何将对象数组转换成DataSet
- 最近安装redhat enterprise as4 的感受!
- RDF与可视化
- 作业1
- 第一次作业
- Linux下Makefile生成技术
- ASP.NET Process Model 之:IIS 和 ASP.NET ISAPI
- IAD 名词解释
- 设计模式的设计原则