-1

I have this linq query that keep returning this error even though I have the DateTime as DBNullable. The trace indicates that the returned values from the database for the insertdate and deletedate are the issue.

This is the error:

at System.DBNull.System.IConvertible.ToDateTime(IFormatProvider provider)

at System.Convert.ToDateTime(Object value)

    public DateTime? insertDate { get; set; }
    public DateTime? deleteDate { get; set; }


    public List<Parameters> fraudResults(DataTable dt)
    {

        var convertedList = (from rw in dt.AsEnumerable()
                             select new Parameters()
                             {
                                 ID = Convert.ToInt32(rw["ID"]),
                                 retailer = Convert.ToString(rw["Retailer"]),
                                 flaggedReason = Convert.ToString(rw["FlaggedReason"]),
                                 insertDate = Convert.ToDateTime(rw["InsertDate"]),
                                 deleteDate = Convert.ToDateTime(rw["DeleteDate"])
                             }).ToList();

        return convertedList;
    }

Any help would be appreciated.

Community
  • 1
  • 1

1 Answers1

1

try this

rw["InsertDate"] == DbNull.Value ? null : Convert.ToDateTime(rw["InsertDate"].ToString());

N.Siva
  • 66
  • 5
  • You should also consider just using Dapper : https://github.com/StackExchange/Dapper It takes care of most of these issues and it's lightweight and fast – Peter4499 Mar 21 '19 at 13:39