-1

I am programming in ASP.NET MVC using C# and I get this error:

The input string is not formatted correctly

I have corroborated in the database and it is fine. So I would like to know if you can see the error. I want to clarify that both the dni and dnidos are Float in the database. But for some unknown reason it is not working in the code.

Class:

public double dniDos { get; set; }

public Solicitud(double dni, string codigo, decimal? monto, string soli,
            DateTime fechaSol, double? valnom, string desc,
            string apellido,
            string nombre,
            string domicilio, string numero,
            string piso, string dpto, string mono, string barrio,
            string zona, string localidad, string provincia,
            int? cp, string tipoDni, string fechaNac, string ocupacion,
            string tel, string cel,
            string email,
            string estadoCivil, string observaciones, 
            string nomdos, double dniDos, 
            string codagencia, string codCobrador, string cobdom,
            string ase, int cuo)
            {
            this.DniNumero = dni;
            this.Codigo = codigo;
            this.Monto = monto;
            this.Solicitudes = soli;
            this.fechaSol = fechaSol;
            this.ValNom = valnom;
            this.DescPlanActual = desc;
            this.Apellido = apellido;
            this.Nombre = nombre;
            this.Domicilio = domicilio;
            this.Numero = numero;
            this.Piso = piso;
            this.Dpto = dpto;
            this.Mono = mono;
            this.Barrio = barrio;
            this.acidzona = zona;
            this.Localidad = localidad;
            this.Provincia = provincia;
            this.CodigoPostal = cp;
            this.DniTipo = tipoDni;
            this.fechaNac=fechaNac;
            this.ocupacion = ocupacion;
            this.Telefono = tel;
            this.Celular = cel;
            this.email=email;
            this.estadoCivil=estadoCivil;
            this.observaciones = observaciones;
            this.nomDos = nomdos;
            this.dniDos = dniDos;
            this.agenciaCodigo = codagencia;
            this.codCobrador = codCobrador;
            this.cobDomicilio = cobdom;
            this.asesor = ase;
            this.cantCuo = cuo;
        }

SQL Connection:

public List<Solicitud> cargarDatosPDF(string sol)
        {
            List<Solicitud> salida = new List<Solicitud>();
            string con = "Data Source = dasdasd; Initial Catalog = ProvidusWeb; Persist Security Info = True; User ID = id; Password = pass";
            using (SqlConnection conexion = new SqlConnection(con))
            {
                conexion.Open();
                string sql = "SELECT DniNumero, codigo, monto, solicitud, " +
                    "FechaSolicitud, valnom, DescPlanActual, " +
                    "apellido, " +
                    "nombre, " +
                    "domicilio, numero," +
                    "piso, dpto, mono, barrio, " +
                    "acidzona, localidad, provincia, " +
                    "codigopostal, dnitipo, FechaNacimiento, ocupacion, " +
                    "telefono, celular, " + 
                    "mail, " +
                    "EstadoCivil, Observaciones, " +
                    "NomSegundoSus, DNIsegundoSus, " +
                    "AgenCob, CodCobrador, " +
                    "asesor, ancantcuoplan, " +
                    "CobradorDomicilio " +
                    " FROM V_SolicitudWeb " +
                    " WHERE solicitud = @sol ";
                SqlCommand cmd = new SqlCommand(sql, conexion);
                cmd.Parameters.AddWithValue("@sol", sol);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    try
                    {
                        double dni = Convert.ToDouble(dr["dninumero"]?.ToString());
                        string codigo = dr["codigo"]?.ToString();
                        decimal? monto = Convert.ToDecimal(dr["monto"]?.ToString());
                        string soli = dr["solicitud"]?.ToString();

                        DateTime fechaSolicitud = Convert.ToDateTime(dr["FechaSolicitud"]?.ToString());
                        double? valnom = Convert.ToDouble(dr["valnom"]?.ToString());
                        string desc = dr["descplanactual"]?.ToString();

                        string apellido = dr["apellido"]?.ToString();

                        string nombre = dr["nombre"]?.ToString();

                        string domicilio = dr["domicilio"]?.ToString();
                        string numero = dr["numero"]?.ToString();

                        string piso = dr["piso"]?.ToString();
                        string dpto = dr["dpto"]?.ToString();
                        string mono = dr["mono"]?.ToString();
                        string barrio = dr["barrio"]?.ToString();

                        string zona = dr["acidzona"]?.ToString();
                        string localidad = dr["localidad"]?.ToString();
                        string provincia = dr["provincia"]?.ToString();

                        int? cp = Convert.ToInt32(dr["codigopostal"]?.ToString());
                        string dnitipo = dr["dnitipo"]?.ToString();
                        string fechaNac = dr["FechaNacimiento"]?.ToString();
                        string ocupacion = dr["ocupacion"]?.ToString();

                        string tel = dr["telefono"]?.ToString();
                        string cel = dr["celular"]?.ToString();
                        
                        string email = dr["Mail"]?.ToString();

                        string estadoCivil = dr["EstadoCivil"]?.ToString();
                        if (estadoCivil == "C") 
                        {
                            estadoCivil = "Casado";
                        } else if (estadoCivil == "S")
                        {
                            estadoCivil = "Soltero";
                        }
                        else if (estadoCivil == "V")
                        {
                            estadoCivil = "Viudo";
                        }
                        else if (estadoCivil == "D")
                        {
                            estadoCivil = "Divorciado";
                        }

                        string observaciones = dr["Observaciones"]?.ToString();

                        string nomDos = dr["NomSegundoSus"]?.ToString();
                        double dniDos = Convert.ToDouble(dr["DNIsegundoSus"]?.ToString());

                        string codAgencia = dr["AgenCob"]?.ToString();
                        string codCobrador = dr["CodCobrador"]?.ToString();
                        string cobDom = dr["CobradorDomicilio"]?.ToString();

                        string ase = dr["asesor"]?.ToString();

                        int cantidadCuotas = Convert.ToInt32(dr["ancantcuoplan"]?.ToString());
                        
                        Solicitud p = new Solicitud(dni, codigo,monto, soli,
                            fechaSolicitud, valnom, desc, 
                            apellido,
                            nombre,
                            domicilio,numero,
                            piso, dpto,mono,barrio,
                            zona,localidad,provincia,
                            cp,dnitipo, fechaNac, ocupacion,
                            tel,cel,
                            email, 
                            estadoCivil, observaciones, 
                            nomDos, dniDos, 
                            codAgencia, codCobrador, codCobrador, 
                            ase, cantidadCuotas);
                        salida.Add(p);
                    }
                    catch (SqlException ex)
                    {
                        
                        throw ex;
                    }
                }
                conexion.Close();
                return salida;
            }
        }

The error happens on this line of code:

double dniDos = Convert.ToDouble(dr["DNIsegundoSus"]?.ToString());

enter image description here

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459

1 Answers1

0

It is trying to convert something that throws a FormatException. If you are able to do so then do something like this

ISNULL(dr[DNIsegundoSus], 0) as 'DNIsegundoSus'

in your SELECT. If you are unable to do so and need to show a null you might want to return it as a string and let the controller determine to pass 'NULL, blank, '', etc to the view.

DMadden51
  • 399
  • 5
  • 15