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 originalImports MySql.Data.MySqlClient
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 originalTry
'Generar archivo temporal
TxtEstadoActual.SaveFile("Temp\temporal.rtf", RichTextBoxStreamType.RichNoOleObjs)
'Convertirlo a un arreglo de bytes
Dim mi_archivo As FileStream = New FileStream(("Temp\temporal.rtf"), FileMode.OpenOrCreate, FileAccess.ReadWrite)
Dim arrFile() As Byte = New Byte((mi_archivo.Length) - 1) {}
Dim reader As BinaryReader = New BinaryReader(mi_archivo)
arrFile = reader.ReadBytes(Convert.ToInt32(mi_archivo.Length))
reader.Close()
'Guardarlo en DB
ConectaDB("Intranet") 'Se abre la conexión.
Dim cmd As New MySqlCommand
cmd.Connection = conexion 'Cadena de conexión.
cmd.CommandText = "UPDATE Deudor SET EstadoActual = ?estado WHERE IdDeudor = ?id"
cmd.Parameters.AddWithValue("?estado", arrFile)
cmd.Parameters.AddWithValue("?id", BuscarInformeInterno.IdDeudor)
cmd.ExecuteNonQuery()
'Mensaje de Confirmacion
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
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 originalTry
ConectaDB("Intranet")
Dim tabla As DataTable = MuestraDB("SELECT EstadoActual FROM Deudor WHERE IdDeudor=" & BuscarInformeInterno.IdDeudor)
If tabla.Rows.Count <> 0 Then
'Creo mi arreglo que almacenara los bytes del archivo
Dim barrFile() As Byte = CType(tabla.Rows(0)(0), Byte())
'Creo el archivo apartir de los bytes
Using newFile As New FileStream(("Temp\temporal1.rtf"), FileMode.Create, FileAccess.Write)
newFile.Write(barrFile, 0, barrFile.Length)
newFile.Flush()
newFile.Close()
End Using
'Abro el archivo temporal en el RichTextBox
TxtEstadoActual.LoadFile("Temp\temporal1.rtf")
End If
Catch ex As Exception
MsgBox("Error al leer la Base de Datos" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "¡ERROR!")
End Try
Gracias
Aquaventus por responderme de una manera muy eficaz y rápida.
De verdad estoy muy agradecido. :D
Saludos desde México!