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 originalImports 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