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
- 'ionic' is not recognized as an internal or external command
- OSError: cannot open resource - Python
- Python read file line count
- How to Encode & Decode using Base64 in Python?
- Unspecified error-The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.
- How to generate a Captcha verification code image with Python?
- How to show an image using path python PIL?
- How to remove Background from the images using Python?
Related Article