(转)DATATABLE(DATASET)与实体类之间的互转.

 

转自:http://www.cnblogs.com/zzyyll2/archive/2010/07/20/1781649.html

 

 

dataset和实体类 之间的转换

//dataset转实体类 

 

 

 

复制代码
代码
public   static  IList < T >  FillModel(DataSet ds) 

List < T >  l  =   new  List < T > (); 
T model  =   default (T);

if  (ds.Tables[ 0 ].Columns[ 0 ].ColumnName  ==   " rowId " ) 

ds.Tables[ 0 ].Columns.Remove( " rowId " ); 
}

 

foreach  (DataRow dr  in  ds.Tables[ 0 ].Rows) 
{


model  =  Activator.CreateInstance < T > ();

foreach  (DataColumn dc  in  dr.Table.Columns) 
{

PropertyInfo pi  =  model.GetType().GetProperty(dc.ColumnName); 
if  (dr[dc.ColumnName]  !=  DBNull.Value) 
pi.SetValue(model, dr[dc.ColumnName],  null ); 
else  
pi.SetValue(model,  null ,  null );


l.Add(model); 
}

return  l;


}

复制代码

 

将实体类转换成DataTable

 

 

复制代码
代码


///   <summary>  
///  将实体类转换成DataTable 
///   </summary>  
///   <typeparam name="T"></typeparam>  
///   <param name="i_objlist"></param>  
///   <returns></returns>  
public   static  DataTable Fill < T > (IList < T >  objlist) 

if  (objlist  ==   null   ||  objlist.Count  <=   0 ) 

return   null ; 

DataTable dt  =   new  DataTable( typeof (T).Name); 
DataColumn column; 
DataRow row;

System.Reflection.PropertyInfo[] myPropertyInfo  =   typeof (T).GetProperties(BindingFlags.Public  |  BindingFlags.Instance);

foreach  (T t  in  objlist) 

if  (t  ==   null ) 

continue ; 
}

row  =  dt.NewRow();

for  ( int  i  =   0 , j  =  myPropertyInfo.Length; i  <  j; i ++ ) 

System.Reflection.PropertyInfo pi  =  myPropertyInfo[i];

string  name  =  pi.Name;

if  (dt.Columns[name]  ==   null ) 

column  =   new  DataColumn(name, pi.PropertyType); 
dt.Columns.Add(column); 
}

row[name]  =  pi.GetValue(t,  null ); 
}

dt.Rows.Add(row); 

return  dt; 
}
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值