Convert List to DataSet implementation code

  • 2020-05-07 20:19:43
  • OfStack

 
/// <summary> 
/// List Converted to DataSet 
/// </summary> 
/// <typeparam name="T"> type </typeparam> 
/// <param name="list"> To be converted List</param> 
/// <returns></returns> 
public DataSet ConvertToDataSet<T>(IList<T> list) 
{ 
if (list == null || list.Count <= 0) 
{ 
return null; 
} 
DataSet ds = new DataSet(); 
DataTable dt = new DataTable(typeof(T).Name); 
DataColumn column; 
DataRow row; 
System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); 
foreach (T t in list) 
{ 
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); 
} 
ds.Tables.Add(dt); 
return ds; 
} 

Related articles: