none
Cambiar coma por punto, problemas de desbordamiento RRS feed

  • Pregunta

  • Tengo un problema y es que cuando quiero guardar datos decimales o hacer alguna operación( estos estan en decimal en la base de datos al igual asi lo defino en cada variable), en la base de datos el decimal esta con "punto", en el form esta con "coma", en el momento de insertar me da el error de "desbordamiento", ya revise los tipos de datos y todos estan en decimal, he cambiado formatos de los labels o textbox a decimal y es el mismo problema de desbordamiento.

    los datos que utilizo son los contenidos en un datagrid, estos tambien aparecen con comas, en donde la base de datos estan con punto

    espero que alguien me podria a dar con el problema

    muchas gracias 

    martes, 24 de abril de 2018 16:55

Todas las respuestas

  • en la base de datos el decimal esta con "punto"

    No, esto no puede ser. Si el campo realmente es de tipo Decimal en la base de datos (y no, por ejemplo, un varchar), entonces no tiene ni punto ni coma. En la base de datos se guarda en binario, solo tiene unos y ceros.

    El punto o la coma lo coloca el software cliente que utilices para acceder a la base de datos (incluso aunque lo muestres con SSMS, eso esun programa cliente), pero no está salvado dentro de la base de datos.

    Por lo tanto, tienes que centrarte en cómo tienes escrito ese software cliente. En algún momento, al grabar o al leer, estás atravesando a través de un string, en lugar de mantener los datos en binario todo el tiempo. En ese momento en el que pasas por un string, el proceso de conversión de binario a string o viceversa que hace tu programa cliente es el que lo "fastidia" todo y mete un punto donde debía haber una coma o viceversa. Así que tienes que analizar con todo cuidado tu código fuente y ver cuál es el momento en el que se produce esa conversión (explícita o implícita) y modificar esa sentencia para que la conversión utilice en formato que realmente necesites.

    martes, 24 de abril de 2018 17:20
    Moderador
  • al momento de guardar los datos hazle un replace al texto

    ejemplo:

    string x=123,12;

    string reemplazado = x.Replace(',', '.');

    de este modo reemplazado sera igual a "123.12"


    DavidDDR david_fer1@hotmail.com

    lunes, 30 de abril de 2018 19:04