Download de um documento do BD para o computador

.NET

12/08/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?

 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();

        }
Thaís Nogueira

Thaís Nogueira

Curtidas 0

Melhor post

Joel Rodrigues

Joel Rodrigues

15/08/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.
GOSTEI 1
POSTAR