Como converter o tipo (System.String) no tipo (System.Byte[])
03/04/2017
0
Boa noite! O problema que estou tendo aqui é o seguinte: Tenho uma tabela no sqlserver onde gravo dados das empresas, em uma coluna eu gravo a imagem da logo da empresa, a parte de insert está ok, consigo fazer as inserções tranquilamente, porém quando preciso alterar algum dado nas empresas a minha consulta retorna o erro: {"Não foi possível efetuar a consulta. Detalhes:Não é possível converter um objeto do tipo 'System.String' no tipo 'System.Byte[]'."} , se alguém puder ajudar a apontar onde estou errando, agradeço pela ajuda!
1 - Uso uma procedure para buscar os dados na tabela;
2 - Abaixo segue o método da consulta:
3 - Código onde recebo os dados do método e preencho a tela:
1 - Uso uma procedure para buscar os dados na tabela;
2 - Abaixo segue o método da consulta:
//Método para Consultar empresa public EmpresasColecaoDto ConsultarEmpresa(string desc_empresa) { try { //Criando uma nova instância de coleção de lojas EmpresasColecaoDto empresasColecaoDto = new EmpresasColecaoDto(); //Conexão com banco de dados conexaoIncor.LimparParametros(); conexaoIncor.AdicionarParametros("@desc_empresa", desc_empresa); //Criando uma DataTable para receber dados da consulta DataTable dataTableConsulta = conexaoIncor.ExecutarConsulta(CommandType.StoredProcedure, "spConsultarEmpresa"); //Transformar o datatable em um coleção de empresas foreach (DataRow datarow in dataTableConsulta.Rows) { //Criar uma empresa vazio para receber os dados das linhas(rows) do foreach EmpresasDto empresaDto = new EmpresasDto(); empresaDto.numg_empresa = Convert.ToInt32(datarow["Numg_Empresa"]); empresaDto.numr_cnpj = Convert.ToString(datarow["Numr_Cnpj"]); empresaDto.desc_razao = Convert.ToString(datarow["Desc_Razao"]); empresaDto.desc_fantasia = Convert.ToString(datarow["Desc_Fantasia"]); empresaDto.numr_inscestadual = Convert.ToString(datarow["Numr_InscEstadual"]); empresaDto.numr_inscmunicipal = Convert.ToString(datarow["Numr_InscMunicipal"]); empresaDto.numr_foneprincipal = Convert.ToString(datarow["Numr_FonePrincipal"]); empresaDto.numr_fone2 = Convert.ToString(datarow["Numr_Fone2"]); empresaDto.desc_emailprincipal = Convert.ToString(datarow["Desc_EmailPrincipal"]); empresaDto.desc_contato = Convert.ToString(datarow["Desc_Contato"]); empresaDto.data_inclusao = Convert.ToString(datarow["Data_Inclusao"]); empresaDto.imag_imagem = (byte[])datarow["imag_imagem"]; //fiz o cast aqui porém o erro estoura nesta linha empresasColecaoDto.Add(empresaDto); } return empresasColecaoDto; } catch (Exception exception) { throw new Exception("Não foi possível efetuar a consulta. Detalhes:" + exception.Message); } }
3 - Código onde recebo os dados do método e preencho a tela:
else if (acaoTela == AcaoTela.Consultar) { this.Text = "Empresa - Manutenção (Consultar)"; ValidacoesNg Validacao = new ValidacoesNg(); numg_empresaselecionada = empresaDto.numg_empresa; desc_empresaselecionada = empresaDto.desc_razao; txCodigo.Text = Convert.ToString(empresaDto.numg_empresa); txCnpj.Text = empresaDto.numr_cnpj; txRazao.Text = empresaDto.desc_razao; txFantasia.Text = empresaDto.desc_fantasia; txInscEstadual.Text = empresaDto.numr_inscestadual; txInscMunicipal.Text = empresaDto.numr_inscmunicipal; txEmail.Text = empresaDto.desc_emailprincipal; txContato.Text = empresaDto.desc_contato; txInclusao.Text = empresaDto.data_inclusao; txExclusao.Text = empresaDto.data_exclusao; txFone1.Text = empresaDto.numr_foneprincipal; txFone2.Text = empresaDto.numr_fone2; if (empresaDto.imag_imagem == null) { picboxLogo.Image = null; } else { MemoryStream memory = new MemoryStream(empresaDto.imag_imagem); picboxLogo.Image = Image.FromStream(memory); }
Charles Menezes
Curtir tópico
+ 0
Responder
Posts
11/04/2017
Guilherme
Boa tarde,
uma maneira de pegar o byte de um char ou string é utilizando ASCIIEncoding conforme o código abaixo, sendo que seu retorno será um array de bytes.
ASCIIEncoding getBytes = new ASCIIEncoding();
var Teste = getBytes.GetBytes("Teste");
uma maneira de pegar o byte de um char ou string é utilizando ASCIIEncoding conforme o código abaixo, sendo que seu retorno será um array de bytes.
ASCIIEncoding getBytes = new ASCIIEncoding();
var Teste = getBytes.GetBytes("Teste");
Responder
Clique aqui para fazer login e interagir na Comunidade :)