Converter um campo de um DataTable para array de byte

10/07/2020

2

Olá a todos, estou criando uma aplicação onde será possível salvar alguns arquivos(pdf, png, jpg e etc..) no banco de dados e recupera-los depois. Porém consegui criar o método para salvar o arquivo que o usuário desejar mas na hora de recuperar estou fazendo uma pesquisa no banco e retornando os valores para uma DataTable com todos os dados como nome do anexo, formato e o próprio arquivo que foi salvo em um campo no banco mysql no formato blob, mas não consigo transformar o campo correspondente ao arquivo na DataTable para um array de bytes e assim transformá-lo novamente em um arquivo e salvalo no pc. Como faço está conversão do campo no dataTable para um array de bytes?

Meu código onde converto novamente para byte que fiz com base no que achei na internet:
Obs: a variável 'Arquivo_anexo' é do tipo byte[].

CamadaRegrasNegocio.Controle_vendas controle_vendas = new CamadaRegrasNegocio.Controle_vendas();

                DataTable dados_arquivo = controle_vendas.Carrega_arquivo(id_venda);
                System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                Lb_nome_arquivo.Text = dados_arquivo.Rows[0]["nome_arquivo"].ToString();
                string arquivo_binario = dados_arquivo.Rows[0]["arquivo_anexo"].ToString();
                Formato_arquivo = dados_arquivo.Rows[0]["formato_arquivo"].ToString();
                Arquivo_anexo = Encoding.ASCII.GetBytes(arquivo_binario);


sempre que utilizo este código e salvo um arquivo ele fica com 13Kb de tamanho, mesmo o arquivo original sendo maior.

desde já agradeço a todos pela ajuda.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar