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

Funciona perfecto!

Dejo el código (tuve que hacer algunas modificaciones ya que me marcaba que algunas opciones habían cambiado.) esperando que le sirva a alguien más. Para que así ya este en C# el de Aquaventus y en VB.Net.

Se importa System.IO y Mysql.Data,MySqlClient

Código vb:
Ver original
  1. Imports MySql.Data.MySqlClient
  2. Imports System.IO

El codigo para generar el codigo binario y mandarlo a la base de datos. (Cambie .Parameters.Add por .Parameters.AddWithValue)

Código vb:
Ver original
  1. Try
  2.             'Generar archivo temporal
  3.            TxtEstadoActual.SaveFile("Temp\temporal.rtf", RichTextBoxStreamType.RichNoOleObjs)
  4.             'Convertirlo a un arreglo de bytes
  5.            Dim mi_archivo As FileStream = New FileStream(("Temp\temporal.rtf"), FileMode.OpenOrCreate, FileAccess.ReadWrite)
  6.             Dim arrFile() As Byte = New Byte((mi_archivo.Length) - 1) {}
  7.             Dim reader As BinaryReader = New BinaryReader(mi_archivo)
  8.             arrFile = reader.ReadBytes(Convert.ToInt32(mi_archivo.Length))
  9.             reader.Close()
  10.             'Guardarlo en DB
  11.            ConectaDB("Intranet") 'Se abre la conexión.
  12.            Dim cmd As New MySqlCommand
  13.             cmd.Connection = conexion 'Cadena de conexión.
  14.            cmd.CommandText = "UPDATE Deudor SET EstadoActual = ?estado WHERE IdDeudor = ?id"
  15.             cmd.Parameters.AddWithValue("?estado", arrFile)
  16.             cmd.Parameters.AddWithValue("?id", BuscarInformeInterno.IdDeudor)
  17.             cmd.ExecuteNonQuery()
  18.             'Mensaje de Confirmacion
  19.            MsgBox("Guardado con exito", MsgBoxStyle.Information, "Exito!")
  20.         Catch ex As Exception
  21.             MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!")
  22.         End Try

Y el código para recibir los datos de la DB, guardarlos en un archivo temporal y ponerlo en el RichTextBox

Código vb:
Ver original
  1. Try
  2.             ConectaDB("Intranet")
  3.             Dim tabla As DataTable = MuestraDB("SELECT EstadoActual FROM Deudor WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor)
  4.             If tabla.Rows.Count <> 0 Then
  5.                 'Creo mi arreglo que almacenara los bytes del archivo
  6.                Dim barrFile() As Byte = CType(tabla.Rows(0)(0), Byte())
  7.                 'Creo el archivo apartir de los bytes
  8.                Using newFile As New FileStream(("Temp\temporal1.rtf"), FileMode.Create, FileAccess.Write)
  9.                     newFile.Write(barrFile, 0, barrFile.Length)
  10.                     newFile.Flush()
  11.                     newFile.Close()
  12.                 End Using
  13.                 'Abro el archivo temporal en el RichTextBox
  14.                TxtEstadoActual.LoadFile("Temp\temporal1.rtf")
  15.             End If
  16.         Catch ex As Exception
  17.             MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!")
  18.         End Try

Gracias Aquaventus por responderme de una manera muy eficaz y rápida.

De verdad estoy muy agradecido. :D

Saludos desde México!