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:
2. Generando un Array de Bytes y guardarlo en un campo Blop. (Este no pude lograrlo).{ tf1ansiansicpg1252deff0deflang2058{fonttbl{f0fnilfcharset0 Microsoft Sans Serif;}} {colortbl ; ed40green40lue40;} viewkind4uc1pardcf1f0fs17 Pruebapar }
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
Imports MySql.Data.MySqlClient Public Class VerInformeInterno Sub LlenaTxt() Dim deudor As DataTable = New DataTable Try ConectaDB() deudor = MuestraDB("SELECT NoSocio,Nombre,TipoCredito,Expediente,Juzgado,EstadoActual,Gestor FROM deudor WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor) TxtNoSocioYFecha.Text = deudor.Rows(0).Item(0).ToString TxtDeudorPrincipal.Text = deudor.Rows(0).Item(1).ToString TxtTipoCredito.Text = deudor.Rows(0).Item(2).ToString TxtExpediente.Text = deudor.Rows(0).Item(3).ToString TxtJuzgado.Text = deudor.Rows(0).Item(4).ToString TxtEstadoActual.Rtf = deudor.Rows(0).Item(5).ToString 'Aquí me marca el error! TxtGestor.Text = deudor.Rows(0).Item(6).ToString deudor = MuestraDB("SELECT Nombre FROM Aval1 WHERE IdAval1=" & BuscarInformeInterno.IdAval1) TxtAval1.Text = deudor.Rows(0).Item(0).ToString If BuscarInformeInterno.IdAval2 = 0 Then TxtAval2.Text = "" Else deudor = MuestraDB("SELECT Nombre FROM Aval2 WHERE IdAval2=" & BuscarInformeInterno.IdAval2) TxtAval2.Text = deudor.Rows(0).Item(0).ToString End If Catch ex As Exception MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!") End Try End Sub Sub ModificaEstadoActual() Try ConectaDB() Dim cmd As MySqlCommand cmd = New MySqlCommand("UPDATE Deudor SET EstadoActual='" & TxtEstadoActual.Rtf & "' WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor, conexion) cmd.ExecuteNonQuery() MsgBox("Guardado con exito", MsgBoxStyle.Information, "Exito!") Catch ex As Exception MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!") End Try End Sub Private Sub BtnEditar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEditar.Click If BtnEditar.Text = "Editar" Then TxtEstadoActual.ReadOnly = False BtnEditar.Text = "Guardar" BtnSalir.Text = "Cancelar" Else TxtEstadoActual.ReadOnly = True BtnEditar.Text = "Editar" BtnSalir.Text = "Salir" ModificaEstadoActual() End If End Sub Private Sub BtnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSalir.Click If BtnSalir.Text = "Salir" Then Informes.BtnInterno.PerformClick() Else Dim tabla As DataTable = MuestraDB("SELECT EstadoActual FROM Deudor WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor) TxtEstadoActual.Rtf = tabla.Rows(0).Item(0) TxtEstadoActual.ReadOnly = True BtnSalir.Text = "Salir" BtnEditar.Text = "Editar" End If End Sub 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