• Viernes 15 de Noviembre de 2024, 07:49

Autor Tema:  Error Al Acceder A La Bd  (Leído 1914 veces)

Black_angel

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Error Al Acceder A La Bd
« en: Miércoles 14 de Julio de 2004, 16:50 »
0
Hola a todos,

  Estoy realizando una aplicación en VB.NET la cuál trabaja con una base de datos Acces .mdb.  Tengo una base de datos de personas en la cuál un campo (altura) está puesto de tipo "Doble" en Acces.
Dos de las funcionalidades de mi aplicación son añadir personas y modificar.
En el formulario de añadir tengo varios textbox de donde cojo los datos introducidos por el usuario: Nombre, Apellidos, Altura,... y los añade a la BD con una intrucción INSERT.
En el formulario de modificar, al cargar hay un combobox donde seleccionas la persona de la cuál quieres modificar sus datos y te aparecen los datos almacenados en la BD para que tú puedas cambiar el que quieras.
El problema es que en el formulario Modificar cuando te muestra los datos de las personas los valores reales en Acces separan la parte entera de la decimal con COMAS y claro, al hacer un UPDATE con el valor que está en ese textbox:
   UPDATE Atleta SET Nombre= 'Pepito', Apellido= 'Grillo', Altura=" & Me.textboxaltura.text & WHERE Nombre='Pepito'

da error de sintaxis UPDATE (Si altura es 1.80 ahí aparece en vez de con punto con coma y se confunde)


¿Hay alguna forma de pasar un String que represente un número con coma (Ej: 3.47 <con COMA entre el 3 y el 47>) a otro String o Double con punto (Ej: 3.47 <con PUNTO entre el 3 y el 47>)   ?

Gracias de antemano por las respuestas.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Error Al Acceder A La Bd
« Respuesta #1 en: Miércoles 14 de Julio de 2004, 17:04 »
0
Simple:

Reemplaza el caracter (existe una CONSTANTE que indica cual es el SEPARADOR DECIMAL en la config. de la máquina) por el que acepta la base de datos con una función tratamiento de cadena, LUEGO que extraes la cadena del control. Esto puede ser molesto ya que tendrás que hacerlo todo el tiempo y mejor si te creas una función para el resto de tu programa.

Nota: Posiblemente se pueda configurar el caracter decimal en el manejador de BD, lo que sería una buena alternativa.

Más simple:

Requerimiento del sistema: configura el caracter de separador decimal a '.' y das una detenida explicación de por que es mejor que se olvide el usuario de usar la coma. Dices que no es estándar en BD (cierto), que si se acostumbra a la coma tendrá líos con otros sistemas de otros países (cierto), que se ve mejor el punto que la coma (cierto), que en las calculadoras vienen con punto y no coma (cierto) y que deje de tocar las pelotas por que no hay tiempo para esos detalles.. (cierto)  :rolleyes:

Black_angel

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Error Al Acceder A La Bd
« Respuesta #2 en: Miércoles 14 de Julio de 2004, 19:48 »
0
Muchas gracias Amilius, me ha ayudado mucho tu respuesta.
     
    Ya solucioné el problema. Pongo aquí la solución por si a alguien algún día le hace falta.

        Dim MiCultura As System.Globalization.CultureInfo
        Dim MiFormato As System.Globalization.NumberFormatInfo = New System.Globalization.CultureInfo(MiCultura.CurrentCulture.ToString(), False).NumberFormat
        MiFormato.NumberDecimalSeparator = "."
        Dim dec1 As Decimal
        dec1 = dataReader("altura")
        Me.textboxaltura.Text = dec1.ToString("N", MiFormato)



Con esto creamos una clase MiFormato a la cuál indicamos cuál queremos que sea nuestro separador decimal.  Luego utilizamos este formato para convertir los números.

Os dejo aquí la página de donde he sacado el código:

http://www.microsoft.com/spanish/msdn/comu...ices/art116.asp


    Saludos y gracias :hola: