Coelhão 0 Denunciar post Postado Setembro 4, 2008 Olá pessoal, estou tentando fazer o update de uma imagem em um banco sql2005 - campo do tipo imagem. Após transformá-la em array de byte preciso executar o comando, mas esta dando erro dizendo que:" operator '&' is not defined for types String and '1-dimensional array of Byte'". A sub é a seguinte: Public Sub Alterar() Dim strQuery As New StringBuilder strQuery.Append("UPDATE Empresa") strQuery.Append(" SET ") strQuery.Append(" Raz_Emp= '" & _Raz_Emp & " ' ") strQuery.Append(", Fan_Emp = '" & _Fan_Emp & " ' ") strQuery.Append(", Cnp_Emp = '" & _Cnp_Emp & " ' ") strQuery.Append(", Ine_Emp = '" & _InE_Emp & " ' ") strQuery.Append(", Tel_Emp = '" & _Tel_Emp & " ' ") strQuery.Append(", Ema_Emp = '" & _Ema_Emp & " ' ") strQuery.Append(", Sit_Emp = '" & _Sit_Emp & " ' ") strQuery.Append(", End_Emp = '" & _End_Emp & " ' ") strQuery.Append(", Bai_Emp = '" & _Bai_Emp & " ' ") strQuery.Append(", Mun_Emp = '" & _Mun_Emp & " ' ") strQuery.Append(", UF_Emp = '" & _UF_Emp & " ' ") [b] strQuery.Append(", Logotipo = '" & _Log_Emp & " ' ")[/b][i][/i] - ** aqui qu esta dando o erro strQuery.Append(" WHERE ") strQuery.Append(" Cod_Emp= '" & _Cod_Emp & "' ") Dim cldBancodeDados As New CldBancodeDados() cldBancodeDados.ExecutaComando(strQuery.ToString) End Sub Alguem sabe como poderia ser feito?? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 5, 2008 De uma olhada nesses links: http://www.macoratti.net/vb5_isql.htm http://www.linhadecodigo.com.br/Artigo.aspx?id=337http://www.50minutos.com.br/2007/06/gravar...erver-usando-c/ Postei links de C# e Asp.Net mas podem ser úteis utilizando a mesma idéia. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Coelhão 0 Denunciar post Postado Setembro 5, 2008 Quintelab, Obrigado, revisei os links e o código esta batendo, o unico problema é na hora de fazer o update. Ele diz que os caracteres & nao devem ser usados para array de byte. Será que existe outra forma de escrever o código para que ele faça o update da variável _Log_Emp O código abaixo esta em uma classe chamada clnempresa que "pega" os dados do frmempresa CODE Private _Log_Emp As Byte() Public Property Log_Emp() As Byte() Get Return _Log_Emp End Get Set(ByVal value As Byte()) _Log_Emp = value End Set End Property Public Sub Alterar() Dim strQuery As New StringBuilder strQuery.Append("UPDATE Empresa") strQuery.Append(" SET ") strQuery.Append(" Raz_Emp= '" & _Raz_Emp & " ' ") strQuery.Append(", Fan_Emp = '" & _Fan_Emp & " ' ") strQuery.Append(", Cnp_Emp = '" & _Cnp_Emp & " ' ") strQuery.Append(", Ine_Emp = '" & _InE_Emp & " ' ") strQuery.Append(", Tel_Emp = '" & _Tel_Emp & " ' ") strQuery.Append(", Ema_Emp = '" & _Ema_Emp & " ' ") strQuery.Append(", Sit_Emp = '" & _Sit_Emp & " ' ") strQuery.Append(", End_Emp = '" & _End_Emp & " ' ") strQuery.Append(", Bai_Emp = '" & _Bai_Emp & " ' ") strQuery.Append(", Mun_Emp = '" & _Mun_Emp & " ' ") strQuery.Append(", UF_Emp = '" & _UF_Emp & " ' ") strQuery.Append(", Logotipo = '" & _Log_Emp & " ' ") strQuery.Append(" WHERE ") strQuery.Append(" Cod_Emp= '" & _Cod_Emp & "' ") Dim cldBancodeDados As New CldBancodeDados() cldBancodeDados.ExecutaComando(strQuery.ToString) End Sub Já no frm empresa: CODE Private Sub FrmEmpresa_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim clnOcorrencias As New DLLDealer.ClnEmpresa Dim drdados As System.Data.SqlClient.SqlDataReader drdados = clnOcorrencias.ListarUsuarios(_Codigo) If drdados.Read Then Raz_EmpTextBox.Text = drdados("Raz_Emp") Fan_EmpTextBox.Text = drdados("Fan_Emp") Cnp_EmpTextBox.Text = drdados("Cnp_Emp") InE_EmpTextBox.Text = drdados("Ine_Emp") Tel_EmpTextBox.Text = drdados("Tel_Emp") Ema_EmpTextBox.Text = drdados("Ema_Emp") Sit_EmpTextBox.Text = drdados("Sit_Emp") End_EmpTextBox.Text = drdados("End_Emp") Bai_EmpTextBox.Text = drdados("Bai_Emp") Mun_EmpTextBox.Text = drdados("Mun_Emp") UF_EmpTextBox.Text = drdados("UF_Emp") log = CType(drdados("Logotipo"), Byte()) Dim ms As New System.IO.MemoryStream Dim ArraySize As Integer ArraySize = log.GetUpperBound(0) + 1 ms = New System.IO.MemoryStream(log, 0, ArraySize) ms.Seek(0, System.IO.SeekOrigin.Begin) Dim img As New System.Drawing.Bitmap(ms) PictureBoxLogo.Image = img End If End Sub O problema é que ele está gravando dados no banco (qdo tiro os caracteres & ), só que na hora de recuperar dá erro (como se os dados que estivessem gravados não fossem de imagem). Por isso continuo achando que o problema esta na forma de escrever o update. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites