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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2021-10-16
  • 2021-04-23
  • 2021-11-11
  • 2021-07-23
  • 2021-08-11
猜你喜欢
  • 2021-06-04
  • 2021-11-09
  • 2021-09-10
  • 2021-08-02
  • 2021-12-30
相关资源
相似解决方案