It arrived to me to have to convert back to a DataTable the IList result I get from the DataMapper instance.
This is mainly because some asp.net components accepts binding only to dataset or datatable
Here is the code I use if somebody has the same problem.
This code only works in .Net 2.0
public static DataTable GetDataTableFromIList<T>( List<T> aIList)
{

DataTable _returnTable = new DataTable();

if (aIList.Count>0)

{

//Creates the table structure looping in the in the first element of the list

object _baseObj = aIList[0];

Type objectType = _baseObj.GetType();

PropertyInfo[] properties = objectType.GetProperties();

DataColumn _col;

foreach (PropertyInfo property in properties)

{

_col =

new DataColumn();

_col.ColumnName = (

string)property.Name;

_col.DataType = property.PropertyType;

_returnTable.Columns.Add(_col);

}

//Adds the rows to the table

DataRow _row;

foreach (object objItem in aIList)

{

_row = _returnTable.NewRow();

foreach (PropertyInfo property in properties)

{

_row[property.Name] = property.GetValue(objItem,

null);

}

_returnTable.Rows.Add(_row);

}

}

return _returnTable;

}

 

Reply via email to