PROBLEMA AO INSERIR IMAGEM NO BD

 Tópico anterior Próximo tópico Novo tópico

PROBLEMA AO INSERIR IMAGEM NO BD

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#489946 - 12/08/2019 17:00:21

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Pessoal, gostaria de agradecer a todos que responderam minha pergunta,
Consegui chegar a uma soluo, mas alterei minha abordagem, acho at que ficou mais conciso o cdigo.
Antes eu lia os componentes do form e abastecia o objeto > lia o objeto e abastecia um array de variaveis texto (Parametros() string - Valores() string > no CRUD criava os parametros do command (cmd, parametros, valores)

agora:
leio os componentes do form e abasteco o objeto > crio os parametros utilizando o objeto diretamente, sem abastecer as variaveis, fao isso direto no CRUD
Ficou tudo genrico, podendo ser usado em qualquer insero ou atualizao com quaisquer dados.
Nesse caso, no preciso transformar byte() em string. Salvou a imagem redondamente, segue como ficou a criao de parametros:
  Public Sub MontaParametros(ByVal CMD As MySqlCommand, ByVal OBJ As Object)
        Try

            Dim Tipo = OBJ.[GetType]()
            Dim propriedades_info = Tipo.GetProperties()
            Dim CT As Integer = propriedades_info.Count

            Dim a As Integer = 0
            For Each c In propriedades_info
                With propriedades_info(a)
                    If .GetIndexParameters().Length = 0 Then
                        Dim propriedade_valor
                        propriedade_valor = .GetValue(OBJ, Nothing)
                        Dim Parametro As String = []@[] & c.Name
                        If c.PropertyType.Name = []Int32[] Then
                            If propriedade_valor Is Nothing Then
                                CMD.Parameters.AddWithValue(Parametro, DBNull.Value)
                            Else
                                CMD.Parameters.AddWithValue(Parametro, propriedade_valor)
                            End If
                        ElseIf c.PropertyType.Name = []String[] Then
                            If propriedade_valor = [][] Then
                                CMD.Parameters.AddWithValue(Parametro, DBNull.Value)
                            Else
                                CMD.Parameters.AddWithValue(Parametro, propriedade_valor.ToString)
                            End If
                        ElseIf c.PropertyType.Name = []Date[] Then
                            If propriedade_valor > []01/01/0001[] Then
                                CMD.Parameters.AddWithValue(Parametro, Format(propriedade_valor, []yyyy-MM-dd[]))
                            Else
                                CMD.Parameters.AddWithValue(Parametro, DBNull.Value)
                            End If
                        ElseIf c.PropertyType.Name = []DateTime[] Then
                            If propriedade_valor > []01/01/0001[] Then
                                If Format(propriedade_valor, []HH:mm[]) > []00:00[] Then
                                    CMD.Parameters.AddWithValue([]@[] & c.Name, Format(propriedade_valor, []yyyy-MM-dd HH:mm[]))
                                Else
                                    CMD.Parameters.AddWithValue([]@[] & c.Name, Format(propriedade_valor, []yyyy-MM-dd[]))
                                End If
                            Else
                                CMD.Parameters.AddWithValue(Parametro, DBNull.Value)
                            End If
                        ElseIf c.PropertyType.Name = []Byte[][] Then
                            If propriedade_valor Is Nothing Then
                                CMD.Parameters.AddWithValue(Parametro, DBNull.Value)
                            Else
                                CMD.Parameters.AddWithValue(Parametro, propriedade_valor)
                            End If
                        End If
                    End If
                End With
                a += 1
            Next

        Catch __unusedException1__ As Exception
            Throw

        End Try
    End Sub


O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#489947 - 12/08/2019 17:12:28

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Isso me parece meio familiar...

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#489963 - 13/08/2019 10:26:12

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


KERP, peguei esse exemplo no lembro onde rsrsrs, obrigado a quem desenvolveu!!!
Depois adaptei s minhas necessidades e ao meu entendimento.
Mantive os nomes de algumas variveis para que o criador possa reconhecer sua obra!! (mentira, deu preguia mesmo rsrsrs)
Com base nesse exemplo, busco no bd e abasteo o objeto ou o list, depois transfiro para o form ou grid, ou...
Tambm com base nesse exemplo, abasteo o objeto com os dados do form baseado nas tags dos componentes e, como viu, monto os parametros do SQL
Melhorei muito meu modo de pensar e programar, me ajudou a sair da caixinha, ou pelo menos olhar pra fora dela.
Como atingi meu objetivo, encerrarei  pegunta agora

O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#489964 - 13/08/2019 10:32:47

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Em tempo
Foi com base nas respostas de todos que consegui ver onde estava meu erro.
Meu erro estava em querer salvar string como medium blob
queria transformar byte() em string e depois inserir string em medium blob.
depois que meus olhos se abriram, vi que estava apenas complicando uma ao simples e acabei eliminando uma etapa desnecessria para a insero de dados.
essa etapa: transferir todos os dados para string e depois transferir os valores STRING para os parmetros. Masa pra qu fazer isso??? Vi a tempo

O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por DAMASCENO.CESAR em 13/08/2019 10:33:08