Buscar : en
Por :

Problemas con punto decimal en vb.net t mysql

Última respuesta el 30 jun 2009, 00:21:31 chechu, el 13 ene 2009, 23:33:25 
 Señalar este mensaje a los moderadores

Hola,
Haciendo una breve reseña de lo que estoy intentando hacer, les comento:
Estoy trabajando con VB .NET 2005 y MYSQL 5.0
Conectando via ADO .NET
Mi problema es el siguiente:
Tengo una llamada Costos (por darle un Nombre)
Que tiene una columna con datos Decimales
Pero cuando hago mi consulta y lo cargo en un Dataset, para luego asignar a un Textbox, como en mi Configuración Regional esta Predeterminado que la coma (,) es separador de Decimales, me toma al punto (.) como separador de Miles, por lo tanto como en la Base de Datos el valor es por ej. 10.3 entonces me toma como 103,00

Quisiera poder recibir bien los datos, sin necesidad de modificar mis configuraciones Regionales.

Aguardo sus comentarios al respecto, y desde ya agradezco su ayuda.

Saludos..

Configuración: Windows XP
Internet Explorer 7.0

Mejores respuestas para « problemas con punto decimal en vb.net t mysql » en :
Copia de respaldo y restauración de bases de datos Mysql VerEn este artículo veremos la manera más sencilla de hacer una copia de respaldo y luego restaurar una base de datos Mysql. Copia de respaldo Para hacer una copia de respaldo de una base de datos se recomienda crear un dump. Para hacer un dump de...
MySQL – Cargar un fichero de texto en una tabla VerPara cargar un fichero de texto definido como: $ tail /home/user1/test.txt 'nombre1',1,9 'nombre2',2,3 'nombre3',3,54 'nombre4',4,2 'nombre5',5,9 En una tabla definida como: CREATE TABLE cargartest ( ...
Cómo leer un archivo línea por línea VerCómo leer un archivo línea por línea Preámbulo Bucle while Sintaxis Ejemplo Trucos Complemento Bucle for Sintaxis Preámbulo Uno de los errores más comunes cuando se aprende a utilizar los scripts “bash” bajo GNU/Linux para leer un...
Descargar VistaDB VerEmbedded SQL es una muy buena alternativa a la base de datos Jet y MSDE para .NET es muy bueno y con exelentes resultados en la programacion en VB.NET y Delphi. Proporciona sólidas y estables relaciones de dase de datos también y al mismo tiempo una...
Introducción - Bases de datos Ver¿Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes usuarios deben poder utilizar estos...
Codificación binaria VerIntroducción al sistema binario A finales de la década de 1930, Claude Shannon mostró que utilizando interruptores que se encontraban cerrados para "verdadero" y abiertos para "falso", se podían llevar a cabo operaciones lógicas asignando el número 1...
Audio multicanal (5.1, 6.1, 7.1) VerAudio multicanal El término "audio multicanal" se refiere al uso de múltiples pistas de audio para reconstruir el sonido en un sistema de sonido de varios altavoces. Se usan dos dígitos separados por un punto decimal (2.1, 5.1, 6.1, 7.1, etc.) para...

1

mmimos, el 13 feb 2009, 01:06:13
  • +2

Yo tengo el mismo problema, no se si ya tienes una solucion para que la compartas, te lo agradeceria mucho!!


http://www.freeprescriptiondrugstore.com

Responder a mmimos

2

niwdeloko, el 16 feb 2009, 15:55:49
  • +1

Tengo el mismo problema ayudaaaaaaaaaaaaaaaaaaaaa

Responder a niwdeloko

3

Gekio, el 28 feb 2009, 16:00:22
  • +2

Cambia la configuracion regional de la PC que usara tu programa. En donde dice Simbolo decimal, elige el punto, y donde dice separador de miles, pon una coma.

Responder a Gekio

4

 elDitoVecco, el 30 jun 2009, 00:21:31
  • +1

Primero, suponiendo que caja de texto es TextBox1, en KeyPress haz lo siguiente, para que sólo se pueda poner un punto como separador decimal. No se permite separador de miles. Independiente de la configuración regional de tu PC.

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
Me.Button1.Focus()
ElseIf e.KeyChar = Convert.ToChar(8) Then ' se pulsó Retroceso
e.Handled = False
ElseIf (e.KeyChar = ","c) Then ' no permite la coma
e.Handled = True ' Handled = True, no permite; = False, si permite...
ElseIf (e.KeyChar = "."c) Then
Dim ctrl As TextBox = DirectCast(sender, TextBox)
If (ctrl.Text.IndexOf("."c) <> -1) Then ' sólo puede haber una coma
e.Handled = True
End If
ElseIf (e.KeyChar < "0"c Or e.KeyChar > "9"c) Then
' desechar los caracteres que no son dígitos
e.Handled = True
End If
End Sub

Luego, en el LostFocus haz lo siguiente: (Label1 es para expresar el resultado en el formulario)

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles TextBox1.LostFocus
Me.Label1.Visible = False
Dim objTextBox As TextBox = CType(sender, TextBox)
If objTextBox.Text = "" Then
Exit Sub
Else
If IsNumeric(objTextBox.Text) Then
' Si es la "," s/Config.Reg. en decimales, constata que ya haya "." y que no
' haya aún "," para reemplazar el "." por la "," como separador decimal
If laComa = True Then
If objTextBox.Text.IndexOf("."c) <> -1 Then
If objTextBox.Text.IndexOf(","c) = -1 Then
' Reemplaza el "." por la "," para adaptar a la Conf.Reg. actual
Dim TestString As String = objTextBox.Text
objTextBox.Text = Replace(TestString, "."c, ","c)
End If
End If
End If
' Hago el formateo con puntos y comas, s/conf.regional actual
Dim a As Decimal = CDec(objTextBox.Text)
objTextBox.Text = a.ToString("N2")
Else
MessageBox.Show("No es una expresión numérica válida.", My.Application.Info.ProductName, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
objTextBox.Text = "" : objTextBox.Focus()
End If
End If
End Sub

Espero te sea útil a tí u otros colegas que tengan igual dudas. Suerte. Bernardo.

Responder a elDitoVecco