Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2012, 10:29
fripas
 
Fecha de Ingreso: septiembre-2012
Ubicación: México
Mensajes: 10
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Leer Rtf en Richtextbox desde Mysql en VB.Net

Hola pues llevo todo el día buscando y haciendo pruebas y nada de nada.

Quisiera guardar el texto de un RichTextBox con formato (supongo que como si fuera un rtf) en una base de datos con MySql desde un formulario, para después leerlo en otro formulario de la aplicación.

La parte de guardar el rtf creo que la he logrado y e intentado con 2 metodos:

1. Guardarlo en una columna con formato Text, desde la propiedad Rtf del RichTextBox. (Este me funciono) y me genera algo parecido a esto:
Código:
{
tf1ansiansicpg1252deff0deflang2058{fonttbl{f0fnilfcharset0 Microsoft Sans Serif;}}
{colortbl ;
ed40green40lue40;}
viewkind4uc1pardcf1f0fs17 Pruebapar
}
2. Generando un Array de Bytes y guardarlo en un campo Blop. (Este no pude lograrlo).

Pero he aquí el problema a la hora de leer los datos desde la DB me marca un error de incompatibilidad que dice: "El formato de archivo no es valido"

Les dejo mi código por si alguien me puede ayudar, Gracias! :)
Código vb:
Ver original
  1. Imports MySql.Data.MySqlClient
  2. Public Class VerInformeInterno
  3.     Sub LlenaTxt()
  4.         Dim deudor As DataTable = New DataTable
  5.         Try
  6.             ConectaDB()
  7.             deudor = MuestraDB("SELECT NoSocio,Nombre,TipoCredito,Expediente,Juzgado,EstadoActual,Gestor FROM deudor WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor)
  8.             TxtNoSocioYFecha.Text = deudor.Rows(0).Item(0).ToString
  9.             TxtDeudorPrincipal.Text = deudor.Rows(0).Item(1).ToString
  10.             TxtTipoCredito.Text = deudor.Rows(0).Item(2).ToString
  11.             TxtExpediente.Text = deudor.Rows(0).Item(3).ToString
  12.             TxtJuzgado.Text = deudor.Rows(0).Item(4).ToString
  13.             TxtEstadoActual.Rtf = deudor.Rows(0).Item(5).ToString 'Aquí me marca el error!
  14.            TxtGestor.Text = deudor.Rows(0).Item(6).ToString
  15.             deudor = MuestraDB("SELECT Nombre FROM Aval1 WHERE IdAval1=" & BuscarInformeInterno.IdAval1)
  16.             TxtAval1.Text = deudor.Rows(0).Item(0).ToString
  17.             If BuscarInformeInterno.IdAval2 = 0 Then
  18.                 TxtAval2.Text = ""
  19.             Else
  20.                 deudor = MuestraDB("SELECT Nombre FROM Aval2 WHERE IdAval2=" & BuscarInformeInterno.IdAval2)
  21.                 TxtAval2.Text = deudor.Rows(0).Item(0).ToString
  22.             End If
  23.         Catch ex As Exception
  24.             MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!")
  25.         End Try
  26.     End Sub
  27.     Sub ModificaEstadoActual()
  28.         Try
  29.             ConectaDB()
  30.             Dim cmd As MySqlCommand
  31.             cmd = New MySqlCommand("UPDATE Deudor SET EstadoActual='" & TxtEstadoActual.Rtf & "' WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor, conexion)
  32.             cmd.ExecuteNonQuery()
  33.             MsgBox("Guardado con exito", MsgBoxStyle.Information, "Exito!")
  34.         Catch ex As Exception
  35.             MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!")
  36.         End Try
  37.     End Sub
  38.  
  39.     Private Sub BtnEditar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEditar.Click
  40.         If BtnEditar.Text = "Editar" Then
  41.             TxtEstadoActual.ReadOnly = False
  42.             BtnEditar.Text = "Guardar"
  43.             BtnSalir.Text = "Cancelar"
  44.         Else
  45.             TxtEstadoActual.ReadOnly = True
  46.             BtnEditar.Text = "Editar"
  47.             BtnSalir.Text = "Salir"
  48.             ModificaEstadoActual()
  49.         End If
  50.     End Sub
  51.  
  52.     Private Sub BtnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSalir.Click
  53.         If BtnSalir.Text = "Salir" Then
  54.             Informes.BtnInterno.PerformClick()
  55.         Else
  56.             Dim tabla As DataTable = MuestraDB("SELECT EstadoActual FROM Deudor WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor)
  57.             TxtEstadoActual.Rtf = tabla.Rows(0).Item(0)
  58.             TxtEstadoActual.ReadOnly = True
  59.             BtnSalir.Text = "Salir"
  60.             BtnEditar.Text = "Editar"
  61.         End If
  62.     End Sub
  63. End Class

Fuentes de donde he buscado: [URL="http://social.msdn.microsoft.com/Forums/es-MX/winformses/thread/6ff82dc9-dd33-4d47-95da-cdb2165e0715"]http://social.msdn.microsoft.com/Forums/es-MX/winformses/thread/6ff82dc9-dd33-4d47-95da-cdb2165e0715[/URL]

[URL="http://www.canalvisualbasic.net/foro/visual-basic-6-0/richtextbox-en-bd-1203/"]http://www.canalvisualbasic.net/foro/visual-basic-6-0/richtextbox-en-bd-1203/[/URL]

Había leído uno en el cual mencionaban que se guardara la propiedad Rtf del Richtextbox en un campo nvarchar en SqlServer pero no encontré su equivalente en MySql y lo guarde en un campo Text pero sigo sin poder recibir los datos desde el servidor para mostrarlos.


Gracias y Saludos desde México