Problemas con datos float MySQL y C#

Necesito si puedes ayudarme. Estoy trabajando con VisualStudio 2005, en C#, una app Web con base de datos MySQL 5.1. El problema que tengo es que la ciertos atributos de una tabla de la bd son float, los ingreso por el administrador de mysql con un ., cuando intento recuperarlos en la app (ya sea con un dataset o un datareader) e imprimo el valor en un textbox, el valor recuperado es, por ejemplo, si almaceno 9.6 me muestra 96. Con la siguiente prueba, obtengo:
double precio=9.6*0.1--> el textbox correspondiente me muestra:0,96
double precioT= Convert.ToDouble(oDataReader["precio"]);
PrecioT=precioT*0.1 -->el unico valor que posee la tabla correspondiente en la columna "precio" es 9.6, el checkbox me muestra :9,6
lo correcto es 0.96.
¿Cuál puede ser el problema? Ademas, desde ayer he tenido problemas para actualizar registros float desde el msqlQuery, acusa un error 2003, se desconecta de la bd y se windows genera un error advirtiendo que "msqld dejo de funcionar..."
Bueno, espero que se entienda la pregunta y puedas ayudarme, pues ya he llevo un par de días en este embrollo que no me permite avanzar.

1 Respuesta

Respuesta
1
Bueno el problema es simple
Estas introcuciendo un dato de tipo doble en un campo de tipo float
entonces en ese caso se puede modificar el código del resultado a float
para que cuando guarde el dato lo guarde como float y no como double
o modifica el tipo de dato en la base de datos a double
es conclusión estas guardando manzanas en el cajón de los mangos ese es el error.
Con respecto al error de la base de datos te sugiero que verifiques la conexión odbc
que se genera en el origen de de datos.
Otra causal es que la dll genero algún cambio de código por tanto sugiero que revises la dll
O finalmente la menos recomendad de las opciones es que reinstales mysql
O puedes intentar utilizar sql server que es más solido
o una alternativa libre mucho mejor que mysql que se llama postgres me parece que es mucho mejor, más estable y lo mejor de todo me permite crear bases de datos orientadas a objetos con conceptos de herencia dentro de las mismas bases de datos es decir más seguridad en el código.
Gracias!. Pero te cuento, que no era precisamente el problema, el tipo de datos (aunque no lo creas...). Había probado con variables float, doubles y el error persistía. Hice una pequeña prueba en vb y tal como te describí el ej de prueba, salio funcionando sin problemas. Por lo que entonces había un problema quizás con el compilador de c# y como entendía el . y la,. Fui a configuración regional y allí cambie el símbolo decimal por el . y el de miles por la,. Recién con este cambio, funciono sin problemas la consulta.
El error de mysqld lo trate de solucionar desinstalando y volviendo a instalar el producto varias veces e incluso en distintas pc, y el comportamiento seguía generando problemas al intentar actualizar valores float. Entonces cambie el tipo de base de datos (INNOBD) a MYISAM, solo cambien una tabla y me resulto no tener problemas con la actualización, ahora debo probar el resto.
Es cierto lo que dices de la estabilidad de mysql, no he usado postgres, debería intentarlo en algún otro proyecto.
Saludos y gracias por tu tiempo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas