Foros del Web » Programación para mayores de 30 ;) » .NET »

No se puede convertir implícitamente el tipo 'int' en 'string'

Estas en el tema de No se puede convertir implícitamente el tipo 'int' en 'string' en el foro de .NET en Foros del Web. Saludos cordiales al foro. El panorama es el sigueinte: 1. Se llena el formulario "FORM_CARROS" y se guarda en la TABLA "Carros" con ID unico. ...
  #1 (permalink)  
Antiguo 08/05/2012, 18:40
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta No se puede convertir implícitamente el tipo 'int' en 'string'

Saludos cordiales al foro.

El panorama es el sigueinte:

1. Se llena el formulario "FORM_CARROS" y se guarda en la TABLA "Carros" con ID unico.

2. Se entra al aplicativo y el cliente desea modificar uno de los registros que grabo, ya que tiene errrores.

3.Para esto el formulario "FORM_CARROS" lo lleno con la informacion que ya existe en la TABLA CARROS, mediante un Stored Procedure.

4.Creo una clase llama "CARROS" la cual me trae la informacion del SP.

5.LLamo a la clase en mi codigo apx.cs y asigno los valores a los input_text y los Dropdownlist.

El error es el siguiente:

Cita:
No se puede convertir implícitamente el tipo 'int' en 'string'
Mi codigo:

Código:
//LA CLASE CARROS (carros.cs).
public class CARROS
    {
        private int idCarroPre;
        private int idTipo;
        private string representante;
        private string anyo_edicion;
        private string titulo;
        private string observaciones;
        
        /// <summary>
        /// Id del Carro
        /// </summary>
        public int IdCarroPre
        {
            get { return (this.idCarroPre); }
            set { idCarroPre = value; }
        }
        /// <summary>
        /// Id Tipo de Carro
        /// </summary>
        public int IdTipo
        {
            get { return (this.idTipo); }
            set { idTipo = value; }
        }
        /// <summary>
        /// Representante
        /// </summary>
        public string Representante
        {
            get { return (this.representante); }
            set { representante = value; }
        }
        
        /// <summary>
        /// Año de Edicion
        /// </summary>
        public string Anyo_edicion
        {
            get { return (this.anyo_edicion); }
            set { anyo_edicion = value; }
        }
        /// <summary>
        /// Titulo
        /// </summary>
        public string Titulo
        {
            get { return (this.titulo); }
            set { titulo = value; }
        }
        /// <summary>
        /// Observaciones
        /// </summary>
        public string Observaciones
        {
            get { return (this.observaciones); }
            set { observaciones = value; }
        }
       
        public static CARROS Init(int idLibroPre, int idRepre,string representante, string anyo_edicion, string titulo, string observaciones)
        {
            CARROS Micarro = new CARROS();
            Micarro.IdCarroPre = idCarroPre;
            Micarro.IdTipo = idTipo;
            Micarro.Representante = representante;
            Micarro.Anyo_edicion = anyo_edicion;
            Micarro.Titulo = titulo;
            Micarro.Observaciones = observaciones;

            return Micarro ;
        }


        public CARROS LeeCarro(int idCarro)
        {

            SqlParameter[] parameters = new SqlParameter[1];
            SqlDataReader reader = null;
            CARROS Micarro = null;


            try
            {
                parameters[0] = new SqlParameter("idCarro", SqlDbType.Int);
                parameters[0].Value = idCarro;

                reader = SqlHelper.ExecuteReader(Definitions.cadenaConexion, CommandType.StoredProcedure, "SpLeeCarroPre", parameters);
                if (reader.Read())
                {
                  

                    Micarro = CARROS.Init(Convert.ToInt32(reader["idCarroPre"]), Convert.ToInt32(reader["IdTipo"]), reader["RepreNombre"].ToString(), reader["AnyoEdicion"].ToString(), reader["Titulo"].ToString(), reader["Obs"].ToString());
                }
                
            }
            catch (Exception ex)
            {
                    throw new Exception("Se ha presentado un error al leer el Carro : " + ex.Message);
            }
            finally
            {
                if (null != reader && !reader.IsClosed)
                    reader.Close();
            }

            return Micarro;
        }
        

    }
Código:
//PAGINA carros.aspx.cs (en donde llamo a la clase)
protected void cargaDatos()
    {
        CARROS miCarro = new CARROS();
        miCarro = miCarro.LeeCarro(Convert.ToInt32(Request.QueryString["Id"]));


        cboTipo.SelectedValue = (Int32)miCarro.IdTipo;
        txtRepre.Text = miCarro.Representante;
        txtAnyoEdicion.Text = miCarro.Anyo_edicion;
        txtTitulo.Text = miCarro.Titulo;
        txtObs.Text = miCarro.Observaciones;

    }
Y como lo mencione arriba, el error que me da es el siguiente:

Cita:
No se puede convertir implícitamente el tipo 'int' en 'string'

Gracias de antemano.
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #2 (permalink)  
Antiguo 09/05/2012, 05:40
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: No se puede convertir implícitamente el tipo 'int' en 'string'

No se puede convertir así de un string a un entero, tienes que usar otras clases de conversión como Convert.

Código C#:
Ver original
  1. cboTipo.SelectedValue = Convert.toInt32(miCarro.IdTipo); //Devuelve 0 si IdTipo es null y excepcion en caso de no poder convertirlo
  2.  
  3. //ó
  4.  
  5. cboTipo.SelectedValue = Int32.Parse(miCarro.IdTipo); //Devuelve excepcion si no puede convertise
  6.  
  7. //ó
  8. int outValue = 0;
  9.  
  10. //Devuelve el valor convertido en outValue y la función devuelve true, si falla la conversion devuelve false (es el más lento, al hacer más comprobaciones)
  11. if (Int32.TryParse(miCarro.IdTipo,out outValue))
  12. cboTipo.SelectedValue = outValue;
  #3 (permalink)  
Antiguo 12/05/2012, 00:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: No se puede convertir implícitamente el tipo 'int' en 'string'

Puedes usar
VariableString = Convert.ToString(variable entera);
VariableString = variableEntera.ToString();

Si tienes un string y lo quieres cambiar a int:
VariableEntera= Convert.ToInt32(variableString);
  #4 (permalink)  
Antiguo 12/05/2012, 01:53
 
Fecha de Ingreso: enero-2010
Ubicación: México
Mensajes: 22
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No se puede convertir implícitamente el tipo 'int' en 'string'

Prueba esto:

int someInteger = (unchecked (int) someString);
  #5 (permalink)  
Antiguo 15/05/2012, 18:13
Avatar de dalyla  
Fecha de Ingreso: septiembre-2005
Mensajes: 135
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: No se puede convertir implícitamente el tipo 'int' en 'string'

yo tengo el mismo problema

Código:
DataTable tblservicios = new DataTable();

            foreach (DataRow dr in tblservicios.Rows)
            {
                string col1 = Convert.ToInt32(dr["ID"].ToString;);
                            }

No puedo convertirlo. Estoy manejando mysql, y si el campo fuera de texto funcionaria, pero no existe el ToInt despues de mi DataRow. Intente encerrarlo con el Convert pero marca lo mismo.

alguna sugerencia?


Perdon asi queda:

int col1 = Convert.ToInt32(dr["ID"].ToString());
__________________
Ayudar a mejorar a los demas, es hacerte mejor a ti mismo ; )

Última edición por dalyla; 15/05/2012 a las 18:15 Razón: error
  #6 (permalink)  
Antiguo 15/05/2012, 21:00
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: No se puede convertir implícitamente el tipo 'int' en 'string'

Código C#:
Ver original
  1. string x = "10";
  2. string y = Convert.ToInt32(x).ToString();

En este ejemplo convierto un string a entero y luego lo vuelvo a convertir a string.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Última edición por cristiantorres; 15/05/2012 a las 21:08

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.