public static List <string> InsertDataToDB(List <DebrisHaulTicket> tickets) { var ErrorTickets = new List <string>(); int record = 1; foreach (DebrisHaulTicket t in tickets) { var dbArgs = new Dapper.DynamicParameters(); dbArgs.Add("@HaulTicketBarcode", t.HaulTicketBarcode.Trim()); dbArgs.Add("@TruckId", t.TruckId.Trim()); dbArgs.Add("@DebrisType", t.DebrisType.Trim()); dbArgs.Add("@Latitude", t.Latitude.Trim()); dbArgs.Add("@Longitude", t.Longitude.Trim()); dbArgs.Add("@Sector", t.Sector.Trim()); dbArgs.Add("@Zone", t.Zone.Trim()); dbArgs.Add("@PropertyType", t.PropertyType.Trim()); dbArgs.Add("@CreatedBy", t.CreatedBy.Trim()); dbArgs.Add("@CreateDate", t.CreateDate.Trim()); // This will probably be better if using a merge insert only. string sql = $@" USE DebrisCollectionTest; insert into DebrisCollection (HaulTicketBarcode, TruckId, PropertyType, DebrisType, Latitude, Longitude, Sector, Zone, CreatedBy, CreateDate) VALUES (@HaulTicketBarcode, @TruckId, @PropertyType, @DebrisType, CAST(@Latitude as FLOAT), CAST(@Longitude as FLOAT), @Sector, @Zone, @CreatedBy, @CreateDate)"; try { if (Constants.Exec_Query_Insert(sql, dbArgs) < 0) { ErrorTickets.Add(record.ToString().PadLeft(5) + "\tHaulTicketBarcode " + t.HaulTicketBarcode + " already exists."); } record++; } catch (Exception ex) { Constants.Log(ex, sql); } } return(ErrorTickets); }