Visual Basic.NET - Apóstrofo en MySQL - Cómo Guardar y Buscar

 
Vista:
Imágen de perfil de BERNARDO HECTOR
Val: 31
Ha aumentado su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

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!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder