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 restrict access to the page Access only for logged user in Django
- Migration admin.0001_initial is applied before its dependency admin.0001_initial on database default
- Add or change a related_name argument to the definition for 'auth.User.groups' or 'DriverUser.groups'. -Django ERROR
- Addition of two numbers in django python
- The request was aborted: Could not create SSL/TLS secure channel -Error in Asp.net
- FieldError: Cannot resolve keyword 'id' into field in Django project
- How to hide the ID field from the Django admin?
- It is impossible to add a non nullable field without specifying a default. Django error
Related Article