.NET – Convert Generic Collection to DataTable

Then presumably you’ll need to lift them to the non-nullable form, using Nullable.GetUnderlyingType, and perhaps change a few null values to DbNull.Value

Change the assignment to be:

row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;

and when adding the columns to be:

table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(
            prop.PropertyType) ?? prop.PropertyType);

And it works. (?? is the null-coalescing operator; it uses the first operand if it is non-null, else the second operand is evaluated and used)

Leave a Comment