none
como tomar la configuracion regional del pc desde asp.net RRS feed

  • Pregunta

  • Buenos dias

    tengo un problema tengo una base de datos con la siguiente tabla  nombreestudiante varchar de 100, el campo nota decimal 5,2 y el campo fallas integer 11

    al enviarle a la base de datos desde el aplicativo de asp.net, cuando le envio 2.3 me llega a la tabla como 23 eso me pasa cuando la pagina web esta subido en el domini, pero desde el local si lo envia bien,  necesito saber la configuracion regional del equipo para saber cual es el separador decimal si es una coma o un punto estoy utilizando este codigo para enviar a la  base de datos.

      Dim mycomand As New MySqlCommand
                Dim mycomand1 As New MySqlCommand
                Try
                   
                mycomand.CommandText = "paJuiciosEditar"
                    mycomand.CommandType = CommandType.StoredProcedure
                    mycomand.Parameters.Add(New MySqlParameter("?_id", MySqlDbType.Int64, 11))
                    mycomand.Parameters("?_id").Value = CInt(key)
                    mycomand.Parameters.Add(New MySqlParameter("?_periodo", MySqlDbType.Int16, 1))
                    mycomand.Parameters("?_periodo").Value = Session("_periodo")
                    Dim valuecom As String = ""
                     Dim valu As String = value
    
                        valuecom = valu.Replace(".", ",") 'Replace(value, ".", ",")
                        mycomand.Parameters.Add(New MySqlParameter("?_valor", MySqlDbType.Decimal, 5, 2))
                        mycomand.Parameters("?_valor").Value = valuecom
                        mycomand.Parameters.Add(New MySqlParameter("?_calificacion", MySqlDbType.VarChar, 1))
                        mycomand.Parameters("?_calificacion").Value = ""
    
                    mycomand.Connection = Session("myconeccion")
                    mycomand.ExecuteNonQuery()
    
    
                Catch ex As Exception
    
               Finally
                    mycomand.Parameters.Clear()
                    mycomand.Dispose()
                End Try

    pero no me funciona...

    gracias por su colaboracion

    sábado, 24 de marzo de 2012 14:49

Respuestas

  • hola

    porque no defines esta en el web.config

    Cómo: Establecer referencia cultural actual mediante programación en una aplicación de ASP.NET

    solo defines

    <configuration>
      <system.web>
        <globalization
           culture="es-Es"
           uiCulture="es-Es"
        />
      </system.web>
    </configuration>

    ademas eso de usar Replace para los puntos y asl comas no es bueno

    deberias usar el tipo correcto cuando asignas datos por parametro

    si el parametri undica quee s decimal no le asignes un string, "valuecom" tiene que ser de tipo correcto, usa

    Dim valuecom As Decimal
    
    If Not Decimal.TryParse(value, valuecom) Then
       lblerror.Text = "el tipo no es correcto"
       Return
    End If                  
    
    mycomand.Parameters.Add(New MySqlParameter("?_valor", MySqlDbType.Decimal, 5, 2))               
    mycomand.Parameters("?_valor").Value = valuecom

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    sábado, 24 de marzo de 2012 15:28
  • Obtener la configuración de la PC no es posible hasta donde sé, pero existe una buena posibilidad de "adivinarla" con Request.UserLanguages.

    //En donde usted necesite obtener el valor:
    CultureInfo ci = new CultureInfo(Request.UserLanguages[0]);
    decimal elValor = Decimal.Parse(Textbox1.Text, ci);
    //Ahora elValor contiene el valor digitado por el usuario
    //en la casilla Textbox1, tal y como lo interpretaría
    //la PC del cliente (o al menos eso creemos).


    Jose R. MCP


    sábado, 24 de marzo de 2012 15:48
    Moderador
  • Hola programadora Alejita

    Dos temas

    TEMA 1: La parte de decimal...

    Como te comenta Leandro es buena practica definir la referencia cultura que va a utilizar tu app para todo lo referente al idioma/lenguaje (numeros, fechas, etc)
    Si no colocas la referencia cultural por default el sistema se configura "automaticamente" a la referencia enviada por el explorador del cliente (esto ya es tema 2) pero lo aclaro porque puede ser el problema que tienes...

    TEMA 2: Obtener configuracion regional de la "PC cliente" (en ASP.NET)

    Una acotacion a  la pregunta

    • "como tomar la configuracion regional del pc desde asp.net ??"

    Bueno de poder se puede, cuando se configura en auto la referencia cultural de la interfaz de usuario y la referencia cultura la aplicacion se "ajustara" al primer referencia de cultura (idioma) presentado por el explorador (es a la primera porque se pueden enviar varios)

    <configuration>
      <system.web>
        <globalization culture="auto" uiCulture="auto" />
      </system.web>
    </configuration>

    Como probar, ejemplo en IE para configurar para enviar otro "idioma"...

    El sistema tomara la cultura "fr-FR" como principal si esta confugurado en AUTO ambas propiedades que te mencionamos aqui

    Enlaces que te pueden ayudar

    Espero que te sirva de ayuda o guia.


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    sábado, 24 de marzo de 2012 23:43

Todas las respuestas

  • hola

    porque no defines esta en el web.config

    Cómo: Establecer referencia cultural actual mediante programación en una aplicación de ASP.NET

    solo defines

    <configuration>
      <system.web>
        <globalization
           culture="es-Es"
           uiCulture="es-Es"
        />
      </system.web>
    </configuration>

    ademas eso de usar Replace para los puntos y asl comas no es bueno

    deberias usar el tipo correcto cuando asignas datos por parametro

    si el parametri undica quee s decimal no le asignes un string, "valuecom" tiene que ser de tipo correcto, usa

    Dim valuecom As Decimal
    
    If Not Decimal.TryParse(value, valuecom) Then
       lblerror.Text = "el tipo no es correcto"
       Return
    End If                  
    
    mycomand.Parameters.Add(New MySqlParameter("?_valor", MySqlDbType.Decimal, 5, 2))               
    mycomand.Parameters("?_valor").Value = valuecom

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    sábado, 24 de marzo de 2012 15:28
  • Obtener la configuración de la PC no es posible hasta donde sé, pero existe una buena posibilidad de "adivinarla" con Request.UserLanguages.

    //En donde usted necesite obtener el valor:
    CultureInfo ci = new CultureInfo(Request.UserLanguages[0]);
    decimal elValor = Decimal.Parse(Textbox1.Text, ci);
    //Ahora elValor contiene el valor digitado por el usuario
    //en la casilla Textbox1, tal y como lo interpretaría
    //la PC del cliente (o al menos eso creemos).


    Jose R. MCP


    sábado, 24 de marzo de 2012 15:48
    Moderador
  • Hola programadora Alejita

    Dos temas

    TEMA 1: La parte de decimal...

    Como te comenta Leandro es buena practica definir la referencia cultura que va a utilizar tu app para todo lo referente al idioma/lenguaje (numeros, fechas, etc)
    Si no colocas la referencia cultural por default el sistema se configura "automaticamente" a la referencia enviada por el explorador del cliente (esto ya es tema 2) pero lo aclaro porque puede ser el problema que tienes...

    TEMA 2: Obtener configuracion regional de la "PC cliente" (en ASP.NET)

    Una acotacion a  la pregunta

    • "como tomar la configuracion regional del pc desde asp.net ??"

    Bueno de poder se puede, cuando se configura en auto la referencia cultural de la interfaz de usuario y la referencia cultura la aplicacion se "ajustara" al primer referencia de cultura (idioma) presentado por el explorador (es a la primera porque se pueden enviar varios)

    <configuration>
      <system.web>
        <globalization culture="auto" uiCulture="auto" />
      </system.web>
    </configuration>

    Como probar, ejemplo en IE para configurar para enviar otro "idioma"...

    El sistema tomara la cultura "fr-FR" como principal si esta confugurado en AUTO ambas propiedades que te mencionamos aqui

    Enlaces que te pueden ayudar

    Espero que te sirva de ayuda o guia.


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    sábado, 24 de marzo de 2012 23:43