none
Convertir string a int con Entity Framework RRS feed

  • Pregunta

  • Hola

    Estoy intentando guardar datos en una tabla,pero marca el error:"No se puede convertir implícitamente el tipo string en int". Como se convierten los int o los decimal cuando se usa entity? Y lo segundo es saber  si es posible obtener el ultimo registro mostrando un msj en pantalla después de guardar los registros.?

    Este es el codigo con el cual lo voy a intentar.

     private void Btn3_Click(object sender, EventArgs e)
            {
                if (TxtBox7.Text.Trim().Equals("") || TxtBox6.Text.Trim().Equals(""))
                {
                    MessageBox.Show("Validar nombre y documento");
                    return;
                }
    
                else
                {
                    MessageBox.Show("Documentos guardados correctamente");
                }
    
    
                byte[] file = null;
                byte[] file1 = null;
                Stream myStream = OpenFileDialog1.OpenFile();
                Stream myStream1 = OpenFileDialog2.OpenFile();
                using (MemoryStream ms = new MemoryStream())
                {
                    myStream.CopyTo(ms);
                    file = ms.ToArray();
                }
                using (MemoryStream ms1 = new MemoryStream())
                {
                    myStream1.CopyTo(ms1);
                    file1 = ms1.ToArray();
                }
    
                using (Model.PagoEntities db = new Model.PagoProveedoresEntities())
                {
                    
    
                    Model.Concepto oDocumento = new Model.Concepto();
                    oDocumento.Pdf = TxtBox7.Text.Trim();
                    oDocumento.DocumentoPDF = file;
                    oDocumento.NombreRealPDF = OpenFileDialog1.SafeFileName;
    
    
                    oDocumento.Xml = textBox5.Text.Trim();
                    oDocumento.DocumentoXML = file1;
                    oDocumento.NombreRealXML = OpenFileDialog2.SafeFileName;
    
                    oDocumento.Emisor = Lbl2.Text.Trim();
                    oDocumento.Forma_de_Pago = TxtBox1.Text.Trim();
                    oDocumento.Proveedor = ComboBox1.Text.Trim();
                    oDocumento.Banco = TxtBox4.Text.Trim();
                    oDocumento.Clabe_Interbancaria = TxtBox5.Text.Trim();
                    oDocumento.Concepto1 = ComboBox3.Text.Trim();
                    oDocumento.EstatusAdmin = textBox6.Text.Trim();
                    oDocumento.IdConcepto =TextBox18.Text.Trim();
                    oDocumento.Id_Usuario = TxtBox2.Text.Trim();
                    oDocumento.Nombre = textBox1.Text.Trim();
                    oDocumento.Departamento = textBox2.Text.Trim();
                    oDocumento.Factura = TxtBox8.Text.Trim();
                    oDocumento.Descripcion = TxtBox9.Text.Trim();
                    oDocumento.Cantidad = TxtBox10.Text.Trim();
                    oDocumento.Precio_Unitario = TxtBox11.Text.Trim();
                    oDocumento.Importe = TxtBox12.Text.Trim();
                    oDocumento.Descuento = TxtBox13.Text.Trim();
                    oDocumento.Subtotal = TxtBox14.Text.Trim();
                    oDocumento.IVA = TxtBox15.Text.Trim();
                    oDocumento.Retencion_ISR = TxtBox16.Text.Trim();
                    oDocumento.Retencion_IVA = TxtBox17.Text.Trim();
                    oDocumento.Total= TxtBox18.Text.Trim();
                    db.Conceptos.Add(oDocumento);
                   
                    db.SaveChanges();
                    MessageBox.Show("Registro insertado con el id");
                }
         
    
            }

    martes, 30 de junio de 2020 16:46

Respuestas

  • hola

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

    esto

    oDocumento.IdConcepto = Convert.ToInt32(TextBox18.Text);

    es correcto

    tambien podrias hacer

    int conceptoId = 0; if(!int.TryParse(TextBox18.Text, out conceptoId )){ //si ingresa aqui no es un valor numerico valido

    return; }

    oDocumento.IdConcepto = conceptoId;


    si es que quiere que asigne pero sin dar un fallo


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 30 de junio de 2020 18:54
  • Gracias Leandro
    • Marcado como respuesta MarZav viernes, 3 de julio de 2020 16:54
    martes, 30 de junio de 2020 19:55
  • Hola MarZav, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    • Marcado como respuesta MarZav miércoles, 1 de julio de 2020 17:56
    martes, 30 de junio de 2020 20:25
    Moderador

Todas las respuestas

  • Eso lo declare fuera de mi using

     int IdDocumento = 0;

    Pero aqui no se como va, ese dato corresponde a mi txtBox18

    oDocumento.IdConcepto = Convert.ToInt32(IdDocumento);

    martes, 30 de junio de 2020 18:43
  • Hice esto, veré si funciona

    oDocumento.IdConcepto = Convert.ToInt32(TextBox18.Text);


    martes, 30 de junio de 2020 18:46
  • hola

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

    esto

    oDocumento.IdConcepto = Convert.ToInt32(TextBox18.Text);

    es correcto

    tambien podrias hacer

    int conceptoId = 0; if(!int.TryParse(TextBox18.Text, out conceptoId )){ //si ingresa aqui no es un valor numerico valido

    return; }

    oDocumento.IdConcepto = conceptoId;


    si es que quiere que asigne pero sin dar un fallo


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 30 de junio de 2020 18:54
  • Gracias Leandro
    • Marcado como respuesta MarZav viernes, 3 de julio de 2020 16:54
    martes, 30 de junio de 2020 19:55
  • Hola MarZav, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    • Marcado como respuesta MarZav miércoles, 1 de julio de 2020 17:56
    martes, 30 de junio de 2020 20:25
    Moderador
  • Hola MarZav

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada. Debido a ello, este hilo será cerrado. 

    Si es necesario, por favor abra un nuevo hilo. 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

     

     Andres Aguilar

    ____________________________ 

    miércoles, 1 de julio de 2020 20:32
    Moderador