C# 输入字符串的问题

C# 输入字符串的问题,c#,sql,sql-server,asp.net-mvc,C#,Sql,Sql Server,Asp.net Mvc,我正在使用C#在ASP.NET MVC中编程,出现以下错误: 输入字符串的格式不正确 我已经在数据库中证实了这一点,一切正常。所以我想知道你是否能看到错误。我想澄清的是,dni和DNIDO在数据库中都是Float。但是由于一些未知的原因,它在代码中不起作用 类别: public double dniDos { get; set; } public Solicitud(double dni, string codigo, decimal? monto, string soli,

我正在使用C#在ASP.NET MVC中编程,出现以下错误:

输入字符串的格式不正确

我已经在数据库中证实了这一点,一切正常。所以我想知道你是否能看到错误。我想澄清的是,dni和DNIDO在数据库中都是
Float
。但是由于一些未知的原因,它在代码中不起作用

类别:

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连接:

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;
            }
        }

它试图转换引发FormatException的内容。如果你能做到这一点,那么就这样做

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

在你的选择中。如果您无法执行此操作,并且需要显示null,则您可能希望将其作为字符串返回,并让控制器确定将“null、blank”等传递给视图。

实际字符串值是什么?null@gurustrony您无法将null转换为那样的int。解决方案可能是将查询修改为:
ISNULL(DNIsegundoSus,0)“DNIDOS”
,对吗@SudipShrestha@FrancoJoelBalsamo请看
ISNULL(dr[DNIsegundoSus], 0) as 'DNIsegundoSus'