Apóstrofo en MySQL - Cómo Guardar y Buscar
Publicado por BERNARDO HECTOR (15 intervenciones) el 04/03/2016 20:40:46
Les dejo esta utilidad, para el caso en que nombres de personas lleven apóstrofo (El apóstrofo es un signo de puntuación en forma de coma volada (') o comilla simple de cierre (') utilizado en muchas lenguas que utilizan el alfabeto latino- Wikipedia), como por ejemplo D'ONOFRIO.
En el campo para el usuario, le permitimos que escriba D'ONOFRIO, luego al salir Reemplazamos el apóstrofo por el acento agudo (´) escribiendo en el código así: "Convert.ToChar(180)" pues el acento agudo corresponde al código ascii=180.
De esa manera, se guardará en la base de datos de la siguiente manera: D´ONOFRIO.
Cuando realicemos una búsqueda, el usuario puede usar el apóstrofo, pero al salir del campo hacemos el Reemplazo y de esa manera MySQL lo encuentra. Lo mostrará, lógicamente con el acento agudo, no con el apóstrofo, pero da lo mismo, pues al hacer un listado tanto por pantalla como por impresora, se mostrará el acento agudo en lugar del apóstrofo. La rutina es la siguiente:
Nombre del campo: CajaTextoContacto.Text = "D'ONOFRIO" (aquí tal cual lo escribe el usuario, con apóstrofo).
Podemos hacer una función (en una Clase para ser Pública para todo el proyecto o solución) pasándole como parámetro ese contenido.
Llamamos a la función, de esta manera:
CajaTextoContacto.Text = ApostrofePorAcentoAgudo(CajaTextoContacto.Text.Trim())
La función sería la siguiente: (El apóstrofo va entre comillas dobles: " ' ")
Public Function ApostrofePorAcentoAgudo(ByVal sNombreCampo As String) As String
Try
Dim a As Integer = InStr(1, sNombreCampo, "'", vbBinaryCompare)
If a <> 0 Then
sNombreCampo = Replace(sNombreCampo, "'", Convert.ToChar(180))
End If
Catch ex As Exception
MsgBox("Error N° " & Err.Number & NL & ex.Message, MsgBoxStyle.Critical, "Información")
End Try
Return sNombreCampo
End Function
En el MsgBox han observado & NL &, bien, en un módulo con funciones públicas para toda la solución va esto:
Friend NL As String = Environment.NewLine (Me hace un salto de línea,es muy práctico).
Con respecto a las letras con diéresis (La diéresis son dos puntos que se sitúan encima de la vocal que queremos acentuar (¨)) las podemos escribir normalmente, pues en VB Net 2015 y MySQL las trata igual a las demás letras normales.
Espero les sea de utilidad!
En el campo para el usuario, le permitimos que escriba D'ONOFRIO, luego al salir Reemplazamos el apóstrofo por el acento agudo (´) escribiendo en el código así: "Convert.ToChar(180)" pues el acento agudo corresponde al código ascii=180.
De esa manera, se guardará en la base de datos de la siguiente manera: D´ONOFRIO.
Cuando realicemos una búsqueda, el usuario puede usar el apóstrofo, pero al salir del campo hacemos el Reemplazo y de esa manera MySQL lo encuentra. Lo mostrará, lógicamente con el acento agudo, no con el apóstrofo, pero da lo mismo, pues al hacer un listado tanto por pantalla como por impresora, se mostrará el acento agudo en lugar del apóstrofo. La rutina es la siguiente:
Nombre del campo: CajaTextoContacto.Text = "D'ONOFRIO" (aquí tal cual lo escribe el usuario, con apóstrofo).
Podemos hacer una función (en una Clase para ser Pública para todo el proyecto o solución) pasándole como parámetro ese contenido.
Llamamos a la función, de esta manera:
CajaTextoContacto.Text = ApostrofePorAcentoAgudo(CajaTextoContacto.Text.Trim())
La función sería la siguiente: (El apóstrofo va entre comillas dobles: " ' ")
Public Function ApostrofePorAcentoAgudo(ByVal sNombreCampo As String) As String
Try
Dim a As Integer = InStr(1, sNombreCampo, "'", vbBinaryCompare)
If a <> 0 Then
sNombreCampo = Replace(sNombreCampo, "'", Convert.ToChar(180))
End If
Catch ex As Exception
MsgBox("Error N° " & Err.Number & NL & ex.Message, MsgBoxStyle.Critical, "Información")
End Try
Return sNombreCampo
End Function
En el MsgBox han observado & NL &, bien, en un módulo con funciones públicas para toda la solución va esto:
Friend NL As String = Environment.NewLine (Me hace un salto de línea,es muy práctico).
Con respecto a las letras con diéresis (La diéresis son dos puntos que se sitúan encima de la vocal que queremos acentuar (¨)) las podemos escribir normalmente, pues en VB Net 2015 y MySQL las trata igual a las demás letras normales.
Espero les sea de utilidad!
Valora esta pregunta


0