List<T> 转换 DataTable

public class List2DataTable     {

public static string GetClassName(Type type)

{             if (type == null)

throw new ArgumentException("参数type不能为空");

if (type.HasAttribute<AliasAttribute>())

return type.GetAttribute<AliasAttribute>().Name.ToLower();

else

return type.Name.ToLower();

}

public static DataTable ListToDataTable<T>(List<T> oList) where T : class

{

try

{

string tableName = GetClassName(typeof(T));

DataTable dt = new DataTable();

string fieldName;

object fieldValue;

string[] fieldNames;

System.Reflection.PropertyInfo[] Props = typeof(T).GetProperties();

fieldNames = new string[Props.Length];

for (int i = 0; i < Props.Length; i++)

{

fieldName = Props[i].Name;

fieldNames[i] = fieldName;

dt.Columns.Add(fieldName, Props[i].PropertyType);

}

for (int r = 0; r < oList.Count; r++)

{

DataRow dr = dt.NewRow();

T o = oList[r];

for (int i = 0; i < fieldNames.Length; i++)

{

fieldValue = Props[i].GetValue(o, null);

dr[fieldNames[i]] = fieldValue;

}

dt.Rows.Add(dr);

}

return dt;

}

catch(Exception ex)             {             }

return null;

}

}

时间: 2024-08-11 21:37:53

List<T> 转换 DataTable的相关文章

服务器不装Excel读取Excel并转换DataTable

原来是用OleDb.4.0组件读取Excel,但是放到服务器后 傻了,服务器没装Excel ,而且领导说不可以装 没办法,只好自己重新找下代码 在CodeProject找到一个开源的dll,一阵欢喜啊,虽然是winform项目,但是主要是用他的类库所以提取一下后 自己研究后重新封装了一个类,运行 耶! 完美支持 需要Dome的同学下载后去研究下吧 地址:http://download.csdn.net/detail/jine515073/7266371 本人用 Excel 97-2003 工作表

dataGrid转换dataTable

#region dataGrid转换dataTable   /// <summary>   /// dataGrid转换dataTable   /// </summary>   /// <param name="dg">dataGrid</param>   /// <returns>返回dataTable</returns>   public DataTable DT(DataGrid dg)   {    try

List转换DataTable

/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list">泛类型集合</param> /// <returns></returns> public static DataTable ListToDataTable<T>(List<T> entitys) { //检查实体集合不能为空 if (

DataRow[]转换DataTable

public DataTable ToDataTable(DataRow[] rows)    {        if (rows == null || rows.Length == 0) return null;        DataTable tmp = rows[0].Table.Clone();  // 复制DataRow的表结构        foreach (DataRow row in rows)            tmp.Rows.Add(row);  // 将DataRo

DataRow数组转换DataTable

public DataTable ToDataTable(DataRow[] rows) { if (rows == null || rows.Length == 0) return null; DataTable tmp = rows[0].Table.Clone(); // 复制DataRow的表结构 foreach (DataRow row in rows) tmp.Rows.Add(row.ItemArray); // 将DataRow添加到DataTable中 return tmp;

DataRow[] /数组转换datatable!

/// <summary> /// /// </summary> /// <param name="dt"></param> /// <param name="strWhere">筛选的条件</param> /// <returns></returns> public DataTable SreeenDataTable(DataTable dt,string strWhe

读CSV转换datatable

using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> /// <param name="filePath">文件路径</param> /// <returns></returns> public static DataTable OpenCSV(string filePath) {     DataTa

SqL读取XML、解析XML、SqL将XML转换DataTable、SqL将XML转换表

DECLARE @ItemMessage XML DECLARE @ItemTable TABLE(ItemNumber INT PRIMARY KEY,ItemDescription NVARCHAR(300)) SET @ItemMessage=N' <ReceivablesInfos> <ReceivablesList> <LIFNR>0000xxxxxx</LIFNR> <NAME1>上海有限公司</NAME1> <BU

关于datatable转换datatime类型的问题

今天转换datatable 属性值的时候出错: DataTable dt_1 = new DataTable();dt_1 = new BLL.auction().GetList_pmh(top, _where, "").Tables[0]; DateTime d = DateTime.Parse(dt_1["preview_time1"].ToString()); 更正后如下: DateTime d = DateTime.Parse(dt_1.Rows[0][&q