Very often we need to convert List to DataTable, so that we can pass DataTable to Stored Procedure as Paramter in the form of tvp. In this example i will show you how to convert List to datatable.
public static DataTable ConvertToDataTable<TSource>(IEnumerable<TSource> source)
{
if (source == null)
return null;
var props = typeof(TSource).GetProperties();
var dt = new DataTable();
//dt.Columns.AddRange(pi.Name,Nullable.GetUnderlyingType(
//pi.PropertyType) ??pi.PropertyType);
dt.Columns.AddRange(
props.Select(p => new DataColumn(p.Name, Nullable.GetUnderlyingType(p.PropertyType)?? p.PropertyType)).ToArray()
);
source.ToList().ForEach(
i=> dt.Rows.Add(props.Select(p => p.GetValue(i, null)).ToArray())
);
return dt;
}
Post your comments / questions
Recent Article
- How to use if else statement in c++?
- How to use godaddy domain name with another godaddy hosting account?
- Restore of database 'DATABASE' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)
- How to programmatically modifying the AppSetting value in web.config using c#?
- TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined
- How to calculate the age from jQuery ui datepicker using c#?
- How to calculate days difference between two dates in c#?
- Changing date format in jQuery ui datepicker
Related Article