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
            [Login] => joenet
            [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.