Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 488999
            [titulo] => Download de um documento do BD para o computador
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-08-15 15:26:00
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 232232
            [status] => A
            [isExample] => 
            [NomeUsuario] => Joel Rodrigues
            [Apelido] => 
            [Foto] => 232232_20161017163010.jpg
            [Conteudo] => Perfeitamente, você pode fazer um select, trazendo o nome e o código do documento e listá-lo em um grid, por exemplo. Quando o usuário selecionar uma linha, você terá acesso também ao código do registro selecionado, então é só efetuar o mesmo procedimento.
        )

)

Download de um documento do BD para o computador

Thaís Nogueira
   - 12 ago 2014

Olá pessoal.
Estou fazendo um código em C# que faz upload de documentos para o BD e dps faz o download deses documentos para o computador.
Porém, ao invés de escolher fazer download pelo número do ID, teria como mostrar a lista de documentos do BD e clicando em um desses documentos, fazer o download?
#Código

 protected void btnUpload_Click(object sender, EventArgs e)
        {
            //Verifica se algum arquivo foi selecionado
            if (upload.HasFile)
            {
                //Instancia a conexão com banco,capturando a string de conexão no web.config
                using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
                {
                    conn.Open();
                    string comandoSQL = "insert into TB_Documento(NomeDocumento,Documento) values(@NomeDocumento,@Documento)";
                    using (SqlCommand cmd = new SqlCommand(comandoSQL, conn))
                    {
                        //Parâmetros
                        cmd.Parameters.Add("@NomeDocumento", SqlDbType.NVarChar, 100).Value = upload.FileName;
                        cmd.Parameters.Add("@Documento", SqlDbType.VarBinary).Value = upload.FileBytes;

                        //executa a inserção
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }


        protected void btnDownload_Click(object sender, EventArgs e)
        {

            SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());

            conn.Open();



            SqlCommand oSqlCommand = new SqlCommand();

            oSqlCommand.Connection = conn;
            oSqlCommand.CommandText = "SELECT Documento FROM TB_Documento Where CodDocumento = 1;";
            oSqlCommand.CommandType = CommandType.Text;

            SqlDataReader oSqlDataReader = oSqlCommand.ExecuteReader();

            byte[] buffer = null;

            if (oSqlDataReader.Read())
            {
                buffer = (byte[])oSqlDataReader.GetValue(0);
            }



            conn.Close();

            StreamWriter oStreamWriter = new StreamWriter(@"C:\Users\thais.nogueira\Documents\Visual Studio 2012\Projects\Upload\Copy_file.pdf");

            oStreamWriter.BaseStream.Write(buffer, 0, buffer.Length);

            oStreamWriter.Close();
            oStreamWriter.Dispose();

        }

Post mais votado

Joel Rodrigues
   - 15 ago 2014

Perfeitamente, você pode fazer um select, trazendo o nome e o código do documento e listá-lo em um grid, por exemplo. Quando o usuário selecionar uma linha, você terá acesso também ao código do registro selecionado, então é só efetuar o mesmo procedimento.