Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: el_cantante en 23 Agosto 2015, 14:15 pm



Título: VB.NET 2010 Download de archivos binarios en DataGridView desde MySQL
Publicado por: el_cantante en 23 Agosto 2015, 14:15 pm
Hola!
Tengo un DataGridView en el que elenco una serie de archivos binarios (PDF), que se encuentran guardados en una tabla de un database MySQL.
Las columnas de la tabla son las siguientes (El archivo binario se encuentra en la columna allegato):

matricola   int(11)
matricola_old   int(11)
nome_file   text
file_size   decimal(20,0)
allegato   longblob
extension   text
data   text

Mi problema es que no se como hacer para descargar estos archivos, intente hacer que una de las columnas tenga la propiedad DataGridViewLinkColumn, o bien agregar otra columna con un button pero la verdad es que me estoy perdiendo...

Este es el codigo que uso, donde carga los archivos binarios:

Código:
 Dim Query As New MySqlCommand
                    Dim Conexion As MySqlConnection
                    Dim Consultar As MySqlDataReader
                    Dim Sql As String = "Server=172.XX.XX.XX;User Id=XXX;Password=XXX;Database=sicurezza"
                    Dim query_Adapter2 As String
                    If ComboBox7.Text = "matricola_old" Then

                        query_Adapter2 = "SELECT dipendenti_allegati.nome_file, dipendenti_allegati.data, dipendenti_allegati.allegato As Allegato FROM dipendenti_allegati INNER JOIN dipendenti ON dipendenti_allegati.matricola = dipendenti.matricola  WHERE dipendenti." & ComboBox7.Text & " = " & TextBox17.Text & ""
                    Else
                        query_Adapter2 = "SELECT dipendenti_allegati.nome_file, dipendenti_allegati.data, dipendenti_allegati.allegato As Allegato FROM dipendenti_allegati INNER JOIN dipendenti ON dipendenti_allegati.matricola = dipendenti.matricola  WHERE dipendenti." & ComboBox7.Text & " LIKE '%" & TextBox17.Text & "%'"
                    End If

                    Conexion = New MySqlConnection()
                    Conexion.ConnectionString = Sql
                    Conexion.Open()
                    Query.CommandText = query_Adapter2
                    Query.Connection = Conexion
                    Consultar = Query.ExecuteReader
                    While Consultar.Read

                    Dim File As String = Consultar(0).ToString
                    Dim Data As String = Consultar(1).ToString
                    Dim texto As String = Consultar(2).ToString
                    Dim Allegato As String = Consultar(3).ToString
                    DataGridView4.Rows.Add(File, texto, Data, Allegato)
                    DataGridView4.Refresh()
                End While

Por favor alguien me podría ayudar o darme alguna sugerencia?

Gracias

Saludos!



Título: Re: VB.NET 2010 Download de archivos binarios en DataGridView desde MySQL
Publicado por: el_cantante en 23 Agosto 2015, 22:39 pm
Aquí la solución por si a alguien mas puede ser de ayuda:

Código:

Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click

        Dim conn As New MySqlConnection
        Dim cmd As New MySqlCommand
        Dim myData As MySqlDataReader
        Dim SQL As String
        Dim rawData() As Byte
        Dim FileSize As UInt32
        Dim fs As FileStream


        conn.ConnectionString = "Server=8.8.8.8;User Id=xxx;Password=xxxx;Database=sicurezza"
           


        SQL = "select allegato, file_size, nome_file from dipendenti_allegati where nome_file=" _
                                              & """Licenze Kaspersky 2014.pdf"""


        Try
            conn.Open()

            cmd.Connection = conn
            cmd.CommandText = SQL

            myData = cmd.ExecuteReader

            If Not myData.HasRows Then Throw New Exception("There are no BLOBs to save")

            myData.Read()

            FileSize = myData.GetUInt32(myData.GetOrdinal("file_size"))
            rawData = New Byte(FileSize) {}

            myData.GetBytes(myData.GetOrdinal("allegato"), 0, rawData, 0, FileSize)

            fs = New FileStream("C:\Users\yo\Desktop\" & myData.GetString(myData.GetOrdinal("nome_file")), FileMode.OpenOrCreate, FileAccess.Write)
            fs.Write(rawData, 0, FileSize)
            fs.Close()


            MessageBox.Show("Archivo guardado!", "OK!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)


            myData.Close()
            conn.Close()
        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

    End Sub


Saludos!  ;-)


Título: Re: VB.NET 2010 Download de archivos binarios en DataGridView desde MySQL
Publicado por: n3n3 en 11 Septiembre 2015, 19:58 pm
Hola espero me puedas ayudar, lo que yo intento hacer es algo parecido pero que me muestre en un treeview carpetas y subcarpetas de mi pc en una ruta especifica y que me despliege los archivos PDF al dar doble click me lo descarge o me de la opcion de guardarlo me seria de mucha ayuda un ejemplo o si me puedes contactar por facebook.

Gracias


Título: Re: VB.NET 2010 Download de archivos binarios en DataGridView desde MySQL
Publicado por: el_cantante en 18 Septiembre 2015, 15:23 pm
Hola,
Fijate en este ejemplo, creo que podría ayudarte en lo que intentas hacer.

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=8238&lngWId=10 (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=8238&lngWId=10)

Saludos!