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);
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!