none
insert a SQL desde C# (Problemas con los decimales) RRS feed

  • Pregunta

  • Saludos,

    Brevemente: al momento de hacer un insert into desde C# a SQL R2 este se inserta pero sin el . decimal

    Ejemplo:

    C# = 10.5

    SQL = 105

    Alguna manera de que sin tener que cambiar la locacion de Windows a Estados Unidos, pueda realizar esto?

    Regularmente cuando se cambia la locacion lo que es sustituir la el (.) por la (,) si no mal recuerdo.

    las variables de tipo Double en C# admite todo, pero he utilizado Decimal y nada de nada.

    Ej: Double total = Convert.ToDouble(txtvalor.Text); / Decimal total = Convert.ToDecimal(txtvalor.Text);

    Nota: El campo en SQL es Decimal. Deberia de ser este el tipo de campo?



    • Editado DewinRD miércoles, 6 de julio de 2016 12:57
    miércoles, 6 de julio de 2016 12:51

Respuestas

  • Ahí tienes el problema

    debes realizar consultas parametrizadas y no concatenaciones de las mismas. Es una buena práctica y te lo van a recomendar muchos usuarios de este foro.

    Como ejemplo te paso

    Decimal total = Convert.ToDecimal(txtvalor.Text);
    
    using(SqlComand cadena = new SqlComand("insert into TablaDinero values (@total)",ConexionSQL))
    {
    	cadena.Parameters.AddWithValue("@total", total);
    	cadena.ExecuteNonQuery();
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    • Propuesto como respuesta Willams Morales miércoles, 6 de julio de 2016 15:09
    • Marcado como respuesta DewinRD jueves, 7 de julio de 2016 10:50
    • Editado Sergio Parra jueves, 7 de julio de 2016 10:58 Edito agregando Parameters, error tipografico
    miércoles, 6 de julio de 2016 13:06

Todas las respuestas

  • Hola, Cómo envias ese parámetro en tu consulta INSERT INTO? Nos puedes pasar el código?



    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 6 de julio de 2016 12:55
  • Ejemplo:

    Decimal total = Convert.ToDecimal(txtvalor.Text);

    SqlComand cadena = new SqlComand("insert into TablaDinero values ('"+total+''')",ConexionSQL);

    miércoles, 6 de julio de 2016 13:00
  • Ahí tienes el problema

    debes realizar consultas parametrizadas y no concatenaciones de las mismas. Es una buena práctica y te lo van a recomendar muchos usuarios de este foro.

    Como ejemplo te paso

    Decimal total = Convert.ToDecimal(txtvalor.Text);
    
    using(SqlComand cadena = new SqlComand("insert into TablaDinero values (@total)",ConexionSQL))
    {
    	cadena.Parameters.AddWithValue("@total", total);
    	cadena.ExecuteNonQuery();
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    • Propuesto como respuesta Willams Morales miércoles, 6 de julio de 2016 15:09
    • Marcado como respuesta DewinRD jueves, 7 de julio de 2016 10:50
    • Editado Sergio Parra jueves, 7 de julio de 2016 10:58 Edito agregando Parameters, error tipografico
    miércoles, 6 de julio de 2016 13:06
  • Ok hermano, Gracias, en cuanto pueda pondré en practica tu sugerencia, por el momento ando en labor, pero si me funciona te marco como la respuesta correcta hoy mismo.

    Saludos coordiales desde Rep.Dom.

    miércoles, 6 de julio de 2016 13:11
  • Efectivamente hermano, el resultado se me agrego tal cual como queria.

    Nota: Falto agregar Parameters a la instruccion para los que tengan la misma duda o inconveniente al igual que yo.

    cadena.Parameters.AddWithValue("@total", total);


    jueves, 7 de julio de 2016 10:50