Data Table 轉 List<Type>

public static class DataConvertor
{
public static DataTable ToDataTable<T>(IEnumerable<T> data)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
var table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
}

public static DataTable ToDataTable(IRfcTable rfcTable)
{
DataTable table = new DataTable();
int liElement = 0;
for (liElement = 0; liElement <= rfcTable.ElementCount - 1; liElement++)
{
RfcElementMetadata metadata = rfcTable.GetElementMetadata(liElement);
table.Columns.Add(metadata.Name); //循環創建列
}
foreach (IRfcStructure dr in rfcTable) //循環table結構表
{
DataRow row = table.NewRow(); //創建新行
for (liElement = 0; liElement <= rfcTable.ElementCount - 1; liElement++)
{
RfcElementMetadata metadata = rfcTable.GetElementMetadata(liElement);
row[metadata.Name] = dr.GetString(metadata.Name).Trim();
}
table.Rows.Add(row);
}

return table;
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章