none
Actualizar inventario procedimiento almacenado RRS feed

  • Pregunta

  • Tengo un procedimiento almacenado para actualizar la existencia de mi inventario. Este es el código en SQL:


    lo uso asi en c#:

    SqlConnection conec = new SqlConnection();
    SqlCommand cm = new SqlCommand();
    cm.Connection = con;
    cm.CommandText = "SP_ActualizaInventario";
    cm.CommandType = CommandType.StoredProcedure;
    
    cm.Parameters.Add(new SqlParameter("@cantidad", SqlDbType.Int));
    cm.Parameters["@cantidad"].Value = txtcantidad.Text.Trim();
    
    cm.Parameters.Add(new SqlParameter("@Producto", SqlDbType.Int));
    cm.Parameters["@Producto"].Value = txtcodigo.Text.Trim();
    
    cm.Parameters.Add(new SqlParameter("@Tipo", SqlDbType.Int));
    cm.Parameters["@Tipo"].Value = 2;
    
    con.Open();
    cm.ExecuteNonQuery();

    y cuando lo utilizo en la compra me da un error de tipo de dato, me dice esto:

    An unhandled exception of type 'System.FormatException' occurred in System.Data.dll Additional information: Failed to convert parameter value from a String to a Int32.

    No entiendo por qué, ¿alguien tiene una idea?


    samuel

    martes, 13 de junio de 2017 4:42

Respuestas

  • Hola Samuel Ignacio,

    Gracias por visitar los foros, comentarte que este thread no ha tenido actividad por un largo tiempo por lo cual procederé a hacer el cierre del mismo.

    Saludos

    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, 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.
    jueves, 22 de junio de 2017 15:51
    Moderador

Todas las respuestas

  • engo un procedimiento almacenado para actualizar la existencia de mi inventario. Este es el código en SQL:

     ALTER PROCEDURE [dbo].[SP_ActualizaInventario]
     @cantidad INT
    ,@Producto INT
    ,@Tipo INT
    AS
    BEGIN
    DECLARE @Existencia INT 
    SET @Existencia = (SELECT Existencia FROM maestraproductoinventario WHERE [Codigo De Articulo] = @Producto)
    if(@Tipo = 1)
    begin
    UPDATE
     maestraproductoinventario 
     SET
        Existencia = @Existencia - @cantidad 
        WHERE [Codigo De Articulo] = @Producto
    end
    else
    begin
    UPDATE
     maestraproductoinventario 
     SET
        Existencia = @Existencia + @cantidad 
        WHERE [Codigo De Articulo] = @Producto
    end
    END



    samuel

    martes, 13 de junio de 2017 4:43
  • prueba con:

    cm.Parameters["@cantidad"].Value = CInt(txtcantidad.Text.Trim())
    cm.Parameters["@Producto"].Value = CInt(txtcodigo.Text.Trim());

    Saludos.

    martes, 13 de junio de 2017 7:24
  • perdona, te lo he puesto en VB .Net, creo que en C# es:

    cm.Parameters["@cantidad"].Value = Int32.Parse(txtcantidad.Text.Trim())
    cm.Parameters["@Producto"].Value = Int32.Parse(txtcodigo.Text.Trim());

    Saludos.

    martes, 13 de junio de 2017 7:28
  • ... o tambié:

    cm.Parameters["@cantidad"].Value = System.Convert.ToInt32(txtcantidad.Text.Trim());
    cm.Parameters["@Producto"].Value = System.Convert.ToInt32(txtcodigo.Text.Trim());

    Saludos.

    martes, 13 de junio de 2017 7:41
  • buenas, primero gracias por tomarte el tiempo de comentar. Probe tu codigo y me da este error:

     Input string was not in a correct format.

    mas info sobre mi programa estoy pasando la compra a un datagridview para hacer una especie de factura y despues hago una sola compra.


    samuel

    martes, 13 de junio de 2017 11:00
  • Hola Samuel Ignacio,

    Gracias por visitar los foros, comentarte que este thread no ha tenido actividad por un largo tiempo, por lo cual preguntarte, ¿Haz podido resolver tu consulta?, de ser así sería de gran ayuda para futuros usuarios pudieras compartirnos tu solución.

    Saludos

    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, 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.

    lunes, 19 de junio de 2017 22:06
    Moderador
  • Hola Samuel Ignacio,

    Gracias por visitar los foros, comentarte que este thread no ha tenido actividad por un largo tiempo por lo cual procederé a hacer el cierre del mismo.

    Saludos

    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, 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.
    jueves, 22 de junio de 2017 15:51
    Moderador