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

Estilo de texto en base de datos

Estas en el tema de Estilo de texto en base de datos en el foro de .NET en Foros del Web. Hola a tod@s. He creado una aplicación con visual basic.net la cual consiste en modificar un texto que sacamos de una base de datos de ...
  #1 (permalink)  
Antiguo 13/06/2008, 04:05
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Estilo de texto en base de datos

Hola a tod@s. He creado una aplicación con visual basic.net la cual consiste en modificar un texto que sacamos de una base de datos de sql server. Cree un botón que lo que hace es convertir un texto seleccionado en negrita. Lo que me sucede es que al cerrar la aplicación y abrirla de nuevo todo el texto que puse en negrita se vuelve a poner normal. No se como puedo hacer para que el estilo de texto (el texto en negrita) me lo guarde en la base de datos y me mantenga el texto en negrita. Muchas gracias.
  #2 (permalink)  
Antiguo 13/06/2008, 06:35
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Cual es el tipo de datos es el campo en la base de datos donde se guardara el texto con formato?

Por que eso si funciona pero no recuerdo si es con Varchar, Text u otro tipo de datos.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 13/06/2008, 08:22
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Muchas gracias jhonwilliams he probado lo de varchar, texto, nvarchar en la base de datos y sigue sin funciona sigue sin guardar el estilo del texto. Me comentó un amigo de probar desde visual basic.net el crear etiquetas dinámicas para el estilo de texto, pero no se como puedo hacerlo. Muchas gracias.
  #4 (permalink)  
Antiguo 13/06/2008, 09:18
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Respuesta: Estilo de texto en base de datos

igonfil,

Estas hablando de una aplicación web ??

si es así se debe guardar el contenido HTML en la base de datos para que cuando lo muestres (en un label por ejemplo) respete el formato

Me explico ??

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

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 13/06/2008, 15:49
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Cita:
Iniciado por igonfil Ver Mensaje
Muchas gracias jhonwilliams he probado lo de varchar, texto, nvarchar en la base de datos y sigue sin funciona sigue sin guardar el estilo del texto. Me comentó un amigo de probar desde visual basic.net el crear etiquetas dinámicas para el estilo de texto, pero no se como puedo hacerlo. Muchas gracias.
¿Para cargar el texto en negrita usaste el RichTextBox?.

Este fin de semana probare en mi casa y te comento que paso.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #6 (permalink)  
Antiguo 14/06/2008, 11:06
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Hola jhonwilliams. Si para cargar el texto en negrita uso el RichTextBox y funciona correctamente, pero lo que sucede que al cerrar el programa y abrirlo de nuevo no mantiene los textos en negrita sino que deja el texto con el estilo que tenia al principio (sin texto en negrita). Muchas gracias
  #7 (permalink)  
Antiguo 15/06/2008, 08:05
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Hola, como te dije antes si funciona, solo que debes tener en cuenta que es lo que se guarda en la base de datos, mira.

Texto Original
Cita:
Hola jhonwilliams. Si para cargar el texto en negrita uso el RichTextBox y funciona correctamente, pero lo que sucede que al cerrar el programa y abrirlo de nuevo no mantiene los textos en negrita sino que deja el texto con el estilo que tenia al principio (sin texto en negrita). Muchas gracias
Texto con Formato
Cita:
Hola jhonwilliams. Si para cargar el texto en negrita uso el RichTextBox y funciona correctamente, pero lo que sucede que al cerrar el programa y abrirlo de nuevo no mantiene los textos en negrita sino que deja el texto con el estilo que tenia al principio (sin texto en negrita). Muchas gracias
Si guardamos el texto formateado llevando a la base de datos lo que hay en la propiedad text del RichTextBox guarda esto:
Cita:
Hola jhonwilliams. Si para cargar el texto en negrita uso el RichTextBox y funciona correctamente, pero lo que sucede que al cerrar el programa y abrirlo de nuevo no mantiene los textos en negrita sino que deja el texto con el estilo que tenia al principio (sin texto en negrita). Muchas gracias
Pero si llevamos a la base de datos lo que hay en la propiedad rtf se guarda asi:
Cita:
{\rtf1\ansi\ansicpg1252\deff0\deflang1034{\fonttbl {\f0\fnil\fcharset0 Verdana;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}
{\colortbl ;\red255\green0\blue0;}
\viewkind4\uc1\pard\cf1\b\f0\fs20 Hola jhonwilliams\cf0\b0\f1\fs17 . Si para cargar el texto en negrita uso el RichTextBox y funciona correctamente, pero lo que sucede que al cerrar el programa y abrirlo de nuevo no mantiene los textos en negrita sino que deja el texto con el estilo que tenia al principio (sin texto en negrita). Muchas gracias\par
}
Al recuperarlo de la base de datos debes asignar lo que traer a la propiedad RTF del RichTextBox y no a la Text.

El campo que use para probar esto fue un Varchar(8000), si el texto que guardas es muy grande creo que debes usar el Text porque si observaste bien el texto con formato tiene codigos que interpreta el RichTextBox para cargar el formato.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #8 (permalink)  
Antiguo 16/06/2008, 09:05
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Gracias jhonwilliams, pero sigue sin funcionarme. Probe de otra forma pero sigue sin funcionar. El código que utilicé es el siguiente (El resultado que quisiera es como el botón de texto en negrita que hay en esta web en el apartado de "mensaje" y "responder mensaje"):

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
Dim negrita As String = "Update Noticias set " & "Noticias = '" & RTBNotic.Rtf & "'"

RTBNotic.Clear()
RTBNotic.SelectionFont = Form.DefaultFont
Dim t As String = RTBNotic.Rtf
'A la primera línea le sigue obligatoriamente la tabla de fuentes
Dim z As Integer = t.IndexOf("{\fonttbl{")
Dim primeralinea As String
primeralinea = t.Substring(0, z)

'Y aquí el que extrae la definición de una fuente:
RTBNotic.Clear()
RTBNotic.SelectionFont = Form.DefaultFont
Dim c As String = RTBNotic.Rtf
Dim rr() As String

'Localizo el nombre de la fuente y parto el texto en dos
rr = Split(t, Font.FontFamily.Name)
'Rastreo la llave izquierda
Dim k1 As Integer = rr(0).LastIndexOf("{")
'y extraigo el fragmanto a partir de ella
Dim s1 As String = rr(0).Substring(k1)

'Rastreo la llave derecha
Dim k2 As Integer = rr(1).IndexOf("}")
'y extraigo el fragmanto hasta ella
Dim s2 As String = rr(1).Substring(0, k2 + 1)

'Uno las tres piezas y ya tengo {La cadena completa entre llaves}
Dim s As String = s1 & Font.FontFamily.Name & s2

'sustituyo el índice cero por el que será correcto en mi documento
RTBNotic.SelectedText = s.Replace("{\f0\", "{\f" & primeralinea & "\")

cmd.CommandText = negrita
cmd.ExecuteNonQuery()
con.Close()
End Sub

Muchas gracias y saludos
  #9 (permalink)  
Antiguo 16/06/2008, 09:42
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Cita:
Iniciado por igonfil Ver Mensaje

RTBNotic.Clear()
RTBNotic.SelectionFont = Form.DefaultFont
Dim t As String = RTBNotic.Rtf
'A la primera línea le sigue obligatoriamente la tabla de fuentes
Dim z As Integer = t.IndexOf("{\fonttbl{")
Dim primeralinea As String
primeralinea = t.Substring(0, z)

'Y aquí el que extrae la definición de una fuente:
RTBNotic.Clear()
RTBNotic.SelectionFont = Form.DefaultFont
Dim c As String = RTBNotic.Rtf
Dim rr() As String

'Localizo el nombre de la fuente y parto el texto en dos
rr = Split(t, Font.FontFamily.Name)
'Rastreo la llave izquierda
Dim k1 As Integer = rr(0).LastIndexOf("{")
'y extraigo el fragmanto a partir de ella
Dim s1 As String = rr(0).Substring(k1)

'Rastreo la llave derecha
Dim k2 As Integer = rr(1).IndexOf("}")
'y extraigo el fragmanto hasta ella
Dim s2 As String = rr(1).Substring(0, k2 + 1)

'Uno las tres piezas y ya tengo {La cadena completa entre llaves}
Dim s As String = s1 & Font.FontFamily.Name & s2

'sustituyo el índice cero por el que será correcto en mi documento
RTBNotic.SelectedText = s.Replace("{\f0\", "{\f" & primeralinea & "\")

End Sub

Muchas gracias y saludos
Para que haces todo esto?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #10 (permalink)  
Antiguo 16/06/2008, 09:54
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Hola. Vi esto en un tutorial y probe a ver si funcionaba de esta forma. Ya no se que probar para que me funcione el botón
  #11 (permalink)  
Antiguo 16/06/2008, 09:57
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Debe ser que no entiendo bien como hacerlo según me explicaste. Un Saludo
  #12 (permalink)  
Antiguo 16/06/2008, 09:57
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Cita:
Iniciado por igonfil Ver Mensaje
Dim negrita As String = "Update Noticias set " & "Noticias = '" & RTBNotic.Rtf & "'"

cmd.CommandText = negrita
cmd.ExecuteNonQuery()
con.Close()
End Sub
Revisaste que el contenido de RTBNotic.Rtf si se vea con los codigos del formato antes de llevarlo a la base de datos?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #13 (permalink)  
Antiguo 17/06/2008, 03:48
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Hola. En la base de datos efectivamente me guarda el estilo de la fuente. El resultado que da es el siguiente:
Cita:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\lang3082\b\fs20 Revisaste\b0\f1\fs17 que el contenido de RTBNotic.Rtf si se vea con los codigos del formato antes de llevarlo a la base de datos\par
}
Lo que sucede que no quiero que muestre el código sino que muestre el texto negrita y que lo mantenga cuando cierre el programa y cuando lo abra este como lo había dejado con sus textos en negrita.
Perdonar por las molestias. Muchas gracias.
Saludos

El código completo que utilizo 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 noticias from Noticias"
dr = cmd.ExecuteReader
Do While dr.Read 'recorre el data reader mientras tenga datos dentro

RTBNotic.Text = 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
Dim negrita As String = "Update Noticias set " & "Noticias = _
'" & RTBNotic.Rtf & "'"
cmd.CommandText = negrita
cmd.ExecuteNonQuery()
con.Close()
End Sub
End Class
  #14 (permalink)  
Antiguo 17/06/2008, 06:35
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Cita:
Iniciado por igonfil Ver Mensaje
Hola. En la base de datos efectivamente me guarda el estilo de la fuente. El resultado que da es el siguiente:
Cita:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\lang3082\b\fs20 Revisaste\b0\f1\fs17 que el contenido de RTBNotic.Rtf si se vea con los codigos del formato antes de llevarlo a la base de datos\par
}
Bueno, entonces ya tienes la mitad listo, en la base de datos NO lo veras en negrita, NUNCA, porque los tipos de campos no soportan estos texto, pero al abrir el programa vas a la base de datos, recuperas la noticia y asignas este texto:

Cita:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\lang3082\b\fs20 Revisaste\b0\f1\fs17 que el contenido de RTBNotic.Rtf si se vea con los codigos del formato antes de llevarlo a la base de datos\par
}
A la propiedad RTF del RichTextBox, asi:

RichTextBox1.RTF = minoticia;

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #15 (permalink)  
Antiguo 17/06/2008, 08:36
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Estilo de texto en base de datos

Muchas gracias jhonwilliams. Ya me funciona a la perfección al final era mucho más sencillo de lo que estaba haciendo y pensando yo.
Saludos
  #16 (permalink)  
Antiguo 17/06/2008, 08:43
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Con gusto.

Aveces damos vueltas en cosas tan sencillas que cuando terminamos nos damos cuenta de todo el tiempo que se "perdio", pero la verdad después de todo este tiempo hemos aprendido a hacer algo y la próxima vez no haremos en mucho menos tiempo.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #17 (permalink)  
Antiguo 31/10/2008, 13:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: Estilo de texto en base de datos

Cita:
Iniciado por jhonwilliams Ver Mensaje
Con gusto.

Aveces damos vueltas en cosas tan sencillas que cuando terminamos nos damos cuenta de todo el tiempo que se "perdio", pero la verdad después de todo este tiempo hemos aprendido a hacer algo y la próxima vez no haremos en mucho menos tiempo.

Saludos
si podes enviame la informacion que te proporcionarion, necesito hacer lo mismo, solo que no se exactamente como aplicar lo que se muestra en los mensajes gracias
  #18 (permalink)  
Antiguo 04/11/2008, 07:32
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Estilo de texto en base de datos

Cita:
Iniciado por Ermilio Ver Mensaje
si podes enviame la informacion que te proporcionarion, necesito hacer lo mismo, solo que no se exactamente como aplicar lo que se muestra en los mensajes gracias
Y concretamente que dudas tienes?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #19 (permalink)  
Antiguo 29/03/2009, 18:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Estilo de texto en base de datos

como hicieron cuando el usuario da enter al final de cada linea, ya que hize lo mismo que realizaron ustedes, y mi problema es cuando dan enter al final de la linea y luego vuelve a escribir otra linea.
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.