Foros del Web » Programación para mayores de 30 ;) » .NET »

Error con la ñ y los acentos

Estas en el tema de Error con la ñ y los acentos en el foro de .NET en Foros del Web. Hola a tod@s. Tengo un problema con una aplicación de visual basic.net. Esta aplicación consiste en un RichTextBox y un botón(al pulsar este botón nos ...
  #1 (permalink)  
Antiguo 20/06/2008, 05:41
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Error con la ñ y los acentos

Hola a tod@s. Tengo un problema con una aplicación de visual basic.net. Esta aplicación consiste en un RichTextBox y un botón(al pulsar este botón nos guarda en una base de datos y modifica lo que escribimos en el RichTextBox). Lo que me sucede es que cuando escribimos en el RichTextBox una ñ o acento me sale el siguiente error
Cita:
En el caso de la ñ:
Línea 2: sintaxis incorrecta cerca de 'f1'.
Comilla no cerrada antes de la cadena de caracteres ''.
Pero si no ponemos ni acentos ni ñ la aplicación funciona a la perfección. ¿A que es debido esto? ¿Y que solución tiene? Muchas gracias.
Un saludo
  #2 (permalink)  
Antiguo 20/06/2008, 09:29
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Error con la ñ y los acentos

Cita:
Lo que me sucede es que cuando escribimos en el RichTextBox una ñ o acento me sale el siguiente error
ese error te sucede al momento de escribir?? o mas bien al guardarlo ?? si es al guardarlo te marca el error al hacer el inserte en la base de datos o que en momento

Escribenos el code que estás utilizando

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 20/06/2008, 09:35
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Error con la ñ y los acentos

Hola RootK. El Error me da una vez que pulso el botón (en el cmd.ExecuteNonQuery()) El código es el siguiente:
Cita:
Imports System.Data.SqlClient
Public Class Form1
Dim CadenaConexion As String = "server=192.168.1.33;Uid=sa;pwd=pass;dataBase=Mani otas"
Private _Negrita As Boolean

Public Property Negrita() As Boolean
Get
Return _Negrita
End Get
Set(ByVal value As Boolean)
_Negrita = value
End Set
End Property
Private Sub CkBNeg_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CkBNeg.CheckedChanged
If RTBNotic.SelectedText.Length > 0 Then

RTBNotic.SelectionFont = New Font("Arial", 10, FontStyle.Bold)

End If
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim con As New SqlConnection
Dim cmd As New SqlCommand
Dim dr As SqlDataReader
'Lo utilizamos para mostrar en el formulario las noticias de la base de datos
con.ConnectionString = CadenaConexion
con.Open()
cmd.Connection = con
cmd.CommandText = "select * from Noticias"
dr = cmd.ExecuteReader
Do While dr.Read 'recorre el data reader mientras tenga datos dentro
'Saca de la base de datos el contenido de la celda noticias y lo muestra en el RTBNotic. Al tener la propiedad Rtf nos muestra el resultado que queremos del estilo (el texto en negrita) de la fuente, si en vez de tener la propiedad RTF fuera Text lo que nos mostraría es el código completo del estilo del texto que contiene la celda
RTBNotic.Rtf = dr("noticias")
Loop
dr.Close()
con.Close()
End Sub

Private Sub btnMod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMod.Click
Dim con As New SqlConnection
Dim cmd As New SqlCommand

con.ConnectionString = CadenaConexion
con.Open()
cmd.Connection = con
'RTBNotic.Rtf lo que hace es guardar en la base de datos el contenido del RichTextBox junto al estilo del texto en formato código
Dim negrita As String = "Update Noticias set Noticias = '" & RTBNotic.Rtf & "'"


cmd.CommandText = negrita
cmd.ExecuteNonQuery()
con.Close()
End Sub
End Class
Un saludo.
  #4 (permalink)  
Antiguo 20/06/2008, 09:58
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Error con la ñ y los acentos

ahh ok, lo que pasa es que estas pasando el contendio de tu RTB directamente en tu variable que empieza con comila simple (ya que es cadena) pero tu control RTBNotic al recibir los valores la "ñ" la convierte en 'f1 y proboca errores al hacer la inserción, lo mismo ocurre para otros caracteres especiales, lo que te recomiendo es que lo hagas con parámetros, tu code podría quedar mejor así:

Código:
Dim con As New SqlConnection
        con.ConnectionString = CadenaConexion
        'RTBNotic.Rtf lo que hace es guardar en la base de datos el contenido del RichTextBox junto al estilo del texto en formato código
        Dim sSQL As String = "Update Noticias set Noticias = @parametroRTB"
        Dim cmd As New SqlCommand(sSQL, oConn)

        Dim parameterRTB As New SqlParameter("@parametroRTB", SqlDbType.NVarChar, 256) 'aqui especificas el tipo de datos y el tamaño
        parameterRTB.Value = RTBNotic.Rtf
        cmd.Parameters.Add(parameterRTB)
        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
Prueba y nos cuentas como te fue

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 23/06/2008, 02:17
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Error con la ñ y los acentos

Hola RootK. Muchas gracias por la ayuda. Ya no me da error, funciona perfectamente
Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.