none
Problema con símbolo >'< en lista genérica. RRS feed

  • Pregunta

  • Hola a todos, buenos días.

    Tengo una lista genérica que no me hace el update por culpa del símbolo '

    Estoy aplicando el replace por otro símbolo parecido per no me lo coge tampoco: ´

    Esta lista la utilizo para el idioma francés, el cuál muchas frases contienen dicho apóstrofe: l'equipe

    Entonces no se que puedo hacer para que eso me funcione. Os pongo el código de la clase.

    Public Class IdiomasProyectoInversion
        Private m_empresa As String
        Private m_orden As String
        Private m_descripcion As String
    
        Public Sub New(descripcion As String, empresa As String, orden As String)
            m_descripcion = descripcion
            m_empresa = empresa
            m_orden = orden
        End Sub
    
        Public ReadOnly Property empresa As String
            Get
                Return m_empresa
            End Get
        End Property
    
        Public ReadOnly Property orden As String
            Get
                Return m_orden
            End Get
        End Property
    
        Public ReadOnly Property descripcion As String
            Get
                Return m_descripcion
            End Get
        End Property
    
        Public Function Update() As String
            Dim Descripcion As String = String.Empty
            If ((Not String.IsNullOrWhiteSpace(m_descripcion)) AndAlso (m_descripcion.Contains("'"c))) Then
                Descripcion = m_descripcion.Replace("'", "´")
            End If
    
            Return String.Format("UPDATE ProyectoInversion Set Descripcion='{0}' WHERE Cod_Empresa='{1}' AND Orden='{2}'",
                                 m_descripcion, m_empresa, m_orden)
    
        End Function
    
    End Class

    No se a la hora de realizar el replace como podría hacer servir dicho símbolo del apóstrofe en la lista.

    Un cordial saludo a todos.

    Gemma

    viernes, 17 de junio de 2016 5:34

Respuestas

  • "gemma_campillo" escribió:

    > No se a la hora de realizar el replace como podría hacer
    > servir dicho símbolo del apóstrofe en la lista.
    >
    > Public Function Update() As String
    >     Dim Descripcion As String = String.Empty
    >     If ((Not String.IsNullOrWhiteSpace(m_descripcion)) AndAlso (m_descripcion.Contains("'"c))) Then
    >          Descripcion = m_descripcion.Replace("'", "´")
    >     End If
    >
    >     Return String.Format("UPDATE ProyectoInversion Set Descripcion='{0}' WHERE Cod_Empresa='{1}' AND Orden='{2}'",
    >                                     m_descripcion, m_empresa, m_orden)
    > End Function

    Gemma, fíjate bien en la función Update, ya que el resultado del Replace se lo estás asignando a una VARIABLE LOCAL Descripcion, y la función devuelve una consulta UPDATE que contiene el valor de un CAMPO DE LA CLASE llamado m_descripcion, luego entiendo que es al valor de éste campo al que le tienes que asignar el valor devuelto por el método Replace:

        '   Dim Descripcion As String = String.Empty  --> eliminar
    
         If ((Not String.IsNullOrWhiteSpace(m_descripcion)) AndAlso (m_descripcion.Contains("'"c))) Then
             m_descripcion = m_descripcion.Replace("'", "''")
         End If


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    viernes, 17 de junio de 2016 6:01
    Moderador
  • Hola:
    Lo que tienes que hacer es reemplazar la comilla simple por 2 comillas simples
    Prueba con esto
    Descripcion = m_descripcion.Replace("'", "''")

    Un saludo desde Bilbo
    Carlos
    • Marcado como respuesta gemma_campillo viernes, 17 de junio de 2016 6:07
    viernes, 17 de junio de 2016 5:54

Todas las respuestas

  • Hola:
    Lo que tienes que hacer es reemplazar la comilla simple por 2 comillas simples
    Prueba con esto
    Descripcion = m_descripcion.Replace("'", "''")

    Un saludo desde Bilbo
    Carlos
    • Marcado como respuesta gemma_campillo viernes, 17 de junio de 2016 6:07
    viernes, 17 de junio de 2016 5:54
  • "gemma_campillo" escribió:

    > No se a la hora de realizar el replace como podría hacer
    > servir dicho símbolo del apóstrofe en la lista.
    >
    > Public Function Update() As String
    >     Dim Descripcion As String = String.Empty
    >     If ((Not String.IsNullOrWhiteSpace(m_descripcion)) AndAlso (m_descripcion.Contains("'"c))) Then
    >          Descripcion = m_descripcion.Replace("'", "´")
    >     End If
    >
    >     Return String.Format("UPDATE ProyectoInversion Set Descripcion='{0}' WHERE Cod_Empresa='{1}' AND Orden='{2}'",
    >                                     m_descripcion, m_empresa, m_orden)
    > End Function

    Gemma, fíjate bien en la función Update, ya que el resultado del Replace se lo estás asignando a una VARIABLE LOCAL Descripcion, y la función devuelve una consulta UPDATE que contiene el valor de un CAMPO DE LA CLASE llamado m_descripcion, luego entiendo que es al valor de éste campo al que le tienes que asignar el valor devuelto por el método Replace:

        '   Dim Descripcion As String = String.Empty  --> eliminar
    
         If ((Not String.IsNullOrWhiteSpace(m_descripcion)) AndAlso (m_descripcion.Contains("'"c))) Then
             m_descripcion = m_descripcion.Replace("'", "''")
         End If


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    viernes, 17 de junio de 2016 6:01
    Moderador
  • Hola:

    Muchas gracias a los dos, efectivamente tenía dos errores las comillas y el campo que me han indicado. (Enrique).

    Ahora funciona perfectamente.

    Muchas gracias a los dos.

    Un abrazo.

    Gemma

    viernes, 17 de junio de 2016 6:07