Fórum Download de um documento do BD para o computador #488618
12/08/2014
0
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?
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
Curtir tópico
+ 0
Responder
Post mais votado
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.
Joel Rodrigues
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)