Ayuda con parseo de String(c#) a decimal(sql)

Discussion in 'Programación & Programación Web' started by Gustavo.ts, May 19, 2013.

  1. Gustavo.ts

    Gustavo.ts Usuario Nuevo nvl. 1
    1/41

    Joined:
    Dec 29, 2008
    Messages:
    150
    Likes Received:
    1
    EL problema es el siguiente:estoy programando con microsoft visual studio 2010 y lo conecto a una base de datos creada en sql server management studio. Dentro del programa tengo un textbox que UPDATEA el valor de un producto a la base de datos, en la cual el valor es un dato de tipo decimal(20,3), mediante la siguiente sentencia:

    decimal valor= Decimal.Parse(valorProducto.Text); /*INTENTO DE PARSEO DEL TEXTBOX A DECIMAL xD*/conex.actualizar("update PRODUCTO set DESCRIPCIONPRODUCTO='" + descripcionProducto.Text + "',VALOR='"+valor+"',ESTADO='"+estadoProducto.SelectedValue.ToString()+"' where IDPRODUCTO='" + idProducto.Text + "'");

    El caso es que al llevar a cabo esto, el catch me lanza un errror de parseo de varchar to numeric, por lo que he intentado parsear de distintas maneras hacia decimal, sin un resutado positivo

    PD: ya intenté con Convert.toDecimal(valorProducto.text);
     
  2. cguzmancamus

    cguzmancamus Usuario Nuevo nvl. 1
    1/41

    Joined:
    Jan 4, 2009
    Messages:
    10
    Likes Received:
    0
    Debes eliminar la comillas simple antes y despues de concatenar la variable valor.. el error debe ser por que sql server piensa que estas pasando un valor literal y no uno numérico. Espero que con eso todo funcione!

    update PRODUCTO set DESCRIPCIONPRODUCTO='" + descripcionProducto.Text + "',VALOR="+valor+",ESTADO='"+estadoProducto.Sele ctedValue.ToString()+"' where IDPRODUCTO='" + idProducto.Text + "'"

    A modo de recomendación, en las sentencias SQL siempre es mejor utilizar la clase SqlParameter para el paso de valores a tus consultas. De esta forma evitas que se produsca SQL Injection

    Suerte con tu proyecto!