Cita:
Iniciado por fripas
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!
Hola compañeros de foro, estoy utilizando este código y para generar el código binario y mandarlo a la BD funciona perfecto, PERO la parte de recibir los datos de la BD no la he podido conseguir, ya que supongo que
MuestraBd es un dato de tipo MySqlCommand, pero me marca este error: No se puede Indizar la clase MySql.Data.MySqlClient.MySqlCommand, porque no tiene ninguna propiedad predeterminada.
Podrian decirme que tipo de datos es MuestraBD o alguna otra idea para mostrar los datos en RichtextBox.rtf.
Gracias de antemano por su ayuda.