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

dataset和实体类 之间的转换

//dataset转实体类

 

 

 

ExpandedBlockStart.gif 代码
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

 

 

ExpandedBlockStart.gif 代码


///   <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; 
}

 

 

转载于:https://www.cnblogs.com/zzyyll2/archive/2010/07/20/1781649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值