none
Gravando arquivos em banco de dados - agora em SQL Server RRS feed

  • Pergunta

  • Olá pessoal,

    Tenho o objeto abaixo e estou tendo problema ao tentar alterar um registro. Quando mando salvar o registro com um arquivo tudo perfeito, sem problemas, mas quando não há necessidade de um arquivo então dá o erro Não é possível converter um objeto do tipo 'System.String' no tipo 'System.Byte[]'.

    Imports Microsoft.VisualBasic
    Imports System.Data.SqlClient
    Imports MySql.Data.MySqlClient
    
    Namespace PROTOCOLO
    
        Public Class objEmpresas
    
            Private Db As classDatabase.DbSql
            Private Cm As SqlCommand
            Private Fn As New Funcoes.classFuncao
            ' Declaracao das variaveis
    
            Private vlCodigo As Integer
            Private vlCategoria As Integer
            Private vlCidade As Integer
            Private vlPessoa As String
            Private vlCNPJ As String
            Dim vlCGF As String
            Dim vlRazaoSocial As String
            Dim vlFantasia As String
            Dim vlEndereco As String
            Dim vlNumero As String
            Dim vlComplemento As String
            Dim vlBairro As String
            Dim vlCep As String
            Dim vlFone1 As String
            Dim vlFone2 As String
            Dim vlFax As String
            Dim vlContato As String
            Dim vlCelular As String
            Dim vlEmail As String
            Dim vlSite As String
            Dim vlFilial As Integer
            Private vlAtivo As String
            Dim vlDataAniversario As String
            Dim vlLogomarca As Byte()
            Dim vlArquivo As String
    
            Property Codigo()
                Get
                    Return vlCodigo
                End Get
                Set(ByVal value)
                    vlCodigo = value
                End Set
            End Property
    
            Property Categoria()
                Get
                    Return vlCategoria
                End Get
                Set(ByVal value)
                    vlCategoria = value
                End Set
            End Property
    
            Property Cidade()
                Get
                    Return vlCidade
                End Get
                Set(ByVal value)
                    vlCidade = value
                End Set
            End Property
    
            Property Pessoa()
                Get
                    Return vlPessoa
                End Get
                Set(ByVal value)
                    vlPessoa = value
                End Set
            End Property
    
            Property CNPJ()
                Get
                    Return vlCNPJ
                End Get
                Set(ByVal value)
                    vlCNPJ = value
                End Set
            End Property
    
            Property CGF()
                Get
                    Return vlCGF
                End Get
                Set(ByVal value)
                    vlCGF = value
                End Set
            End Property
    
            Property RazaoSocial()
                Get
                    Return vlRazaoSocial
                End Get
                Set(ByVal value)
                    vlRazaoSocial = value
                End Set
            End Property
    
            Property Fantasia()
                Get
                    Return vlFantasia
                End Get
                Set(ByVal value)
                    vlFantasia = value
                End Set
            End Property
    
            Property Endereco()
                Get
                    Return vlEndereco
                End Get
                Set(ByVal value)
                    vlEndereco = value
                End Set
            End Property
    
            Property Numero()
                Get
                    Return vlNumero
                End Get
                Set(ByVal value)
                    vlNumero = value
                End Set
            End Property
    
            Property Complemento()
                Get
                    Return vlComplemento
                End Get
                Set(ByVal value)
                    vlComplemento = value
                End Set
            End Property
    
            Property Bairro()
                Get
                    Return vlBairro
                End Get
                Set(ByVal value)
                    vlBairro = value
                End Set
            End Property
    
            Property Cep()
                Get
                    Return vlCep
                End Get
                Set(ByVal value)
                    vlCep = value
                End Set
            End Property
    
            Property Fone1()
                Get
                    Return vlFone1
                End Get
                Set(ByVal value)
                    vlFone1 = value
                End Set
            End Property
    
            Property Fone2()
                Get
                    Return vlFone2
                End Get
                Set(ByVal value)
                    vlFone2 = value
                End Set
            End Property
    
            Property Fax()
                Get
                    Return vlFax
                End Get
                Set(ByVal value)
                    vlFax = value
                End Set
            End Property
    
            Property Contato()
                Get
                    Return vlContato
                End Get
                Set(ByVal value)
                    vlContato = value
                End Set
            End Property
    
            Property Celular()
                Get
                    Return vlCelular
                End Get
                Set(ByVal value)
                    vlCelular = value
                End Set
            End Property
    
            Property Email()
                Get
                    Return vlEmail
                End Get
                Set(ByVal value)
                    vlEmail = value
                End Set
            End Property
    
            Property Site()
                Get
                    Return vlSite
                End Get
                Set(ByVal value)
                    vlSite = value
                End Set
            End Property
    
            Property Filial()
                Get
                    Return vlFilial
                End Get
                Set(ByVal value)
                    vlFilial = value
                End Set
            End Property
    
            Property Ativo()
                Get
                    Return vlAtivo
                End Get
                Set(ByVal value)
                    vlAtivo = value
                End Set
            End Property
    
            Property DataAniversario()
                Get
                    Return vlDataAniversario
                End Get
                Set(ByVal value)
                    vlDataAniversario = value
                End Set
            End Property
    
            Property Logomarca()
                Get
                    Return vlLogomarca
                End Get
                Set(ByVal value)
                    vlLogomarca = value
                End Set
            End Property
    
            Property Arquivo()
                Get
                    Return vlArquivo
                End Get
                Set(ByVal value)
                    vlArquivo = value
                End Set
            End Property
    
            ' Declaracao dos procedimentos
            Public Function Inserir(ByVal pLabel As WebControls.Label) As String
                Try
                    Cm = New SqlCommand
                    ' Gera o código
                    Db = New classDatabase.DbSql
                    Db.NomeTabela = "c001_empresas"
                    vlCodigo = Db.Chave("Empresa_Codigo")
                    Db = Nothing
    
                    With Cm.Parameters
                        .AddWithValue("@Empresa_Codigo", vlCodigo)
                        .AddWithValue("@Categoria_Codigo", vlCategoria)
                        .AddWithValue("@Cidade_Codigo", vlCidade)
                        .AddWithValue("@Empresa_Pessoa", vlPessoa)
                        .AddWithValue("@Empresa_CPF", vlCNPJ)
                        If Not IsDBNull(Trim(vlCGF)) Then .AddWithValue("@Empresa_RG", vlCGF) Else .AddWithValue("@Empresa_RG", DBNull.Value)
                        .AddWithValue("@Empresa_RazaoSocial", Trim(vlRazaoSocial))
                        .AddWithValue("@Empresa_Fantasia", Trim(vlFantasia))
                        .AddWithValue("@Empresa_Endereco", Trim(vlEndereco))
                        .AddWithValue("@Empresa_Numero", Trim(vlNumero))
                        If Not IsDBNull(Trim(vlComplemento)) Then .AddWithValue("@Empresa_Complemento", Trim(vlNumero)) Else .AddWithValue("@Empresa_Complemento", DBNull.Value)
                        .AddWithValue("@Empresa_Bairro", Trim(vlBairro))
                        .AddWithValue("@Empresa_Cep", Trim(vlCep))
                        .AddWithValue("@Empresa_Fone1", Trim(vlFone1))
                        If Not IsDBNull(Trim(vlFone2)) Then .AddWithValue("@Empresa_Fone2", Trim(vlFone2)) Else .AddWithValue("@Empresa_Fone2", DBNull.Value)
                        If Not IsDBNull(Trim(vlFax)) Then .AddWithValue("@Empresa_Fax", Trim(vlFax)) Else .AddWithValue("@Empresa_Fax", DBNull.Value)
                        If Not IsDBNull(Trim(vlContato)) Then .AddWithValue("@Empresa_Contato", Trim(vlContato)) Else .AddWithValue("@Empresa_Contato", DBNull.Value)
                        If Not IsDBNull(Trim(vlCelular)) Then .AddWithValue("@Empresa_Celular", Trim(vlCelular)) Else .AddWithValue("@Empresa_Celular", DBNull.Value)
                        If Not IsDBNull(Trim(vlEmail)) Then .AddWithValue("@Empresa_Email", LCase(Trim(vlEmail))) Else .AddWithValue("@Empresa_Email", DBNull.Value)
                        If Not IsDBNull(Trim(vlSite)) Then .AddWithValue("@Empresa_Site", LCase(Trim(vlSite))) Else .AddWithValue("@Empresa_Site", DBNull.Value)
                        If Not IsDBNull(Trim(vlAtivo)) Then .AddWithValue("@Empresa_Ativo", LCase(Trim(vlAtivo))) Else .AddWithValue("@Empresa_Ativo", "False")
                        .AddWithValue("@Empresa_Filial", vlFilial)
                        .AddWithValue("@Empresa_Aniversario", CDate(vlDataAniversario))
                        If Not IsDBNull(vlArquivo) Then .AddWithValue("@Empresa_Logo", vlLogomarca) Else .AddWithValue("@Empresa_Logo", DBNull.Value)
                    End With
    
                    If Busca(" Empresa_Filial = " & vlFilial & " AND Empresa_CPF = '" & Trim(vlCNPJ) & "' ") Then
                        pLabel.CssClass = "label atencao"
                        pLabel.Text = "Registro já cadastrado!"
                        Return "Registro já cadastrado!"
                    Else
                        ' Cria uma instância do objeto de conexao com o banco de dados
                        ' e preenche os dados necessarios para realizar as operacoes
                        Db = New classDatabase.DbSql
                        Db.NomeTabela = "c001_empresas"
                        Return Db.Salvar(Cm)
                    End If
    
                Catch ex As Exception
                    pLabel.CssClass = "label atencao"
                    pLabel.Text = "Registro já cadastrado!"
                    Return "Ocorreu um erro ao tentar incluir um novo registro: " & ex.Message
    
                Finally
                    Cm = Nothing
                    Db = Nothing
    
                End Try
    
            End Function
    
            Public Function Alterar(ByVal pLabel As WebControls.Label) As String
                Try
                    Cm = New SqlCommand
    
                    With Cm.Parameters
                        .AddWithValue("@Categoria_Codigo", vlCategoria)
                        .AddWithValue("@Cidade_Codigo", vlCidade)
                        .AddWithValue("@Empresa_Pessoa", vlPessoa)
                        .AddWithValue("@Empresa_CPF", vlCNPJ)
                        If Not IsDBNull(Trim(vlCGF)) Then .AddWithValue("@Empresa_RG", vlCGF) Else .AddWithValue("@Empresa_RG", DBNull.Value)
                        .AddWithValue("@Empresa_RazaoSocial", Trim(vlRazaoSocial))
                        .AddWithValue("@Empresa_Fantasia", Trim(vlFantasia))
                        .AddWithValue("@Empresa_Endereco", Trim(vlEndereco))
                        .AddWithValue("@Empresa_Numero", Trim(vlNumero))
                        If Not IsDBNull(Trim(vlComplemento)) Then .AddWithValue("@Empresa_Complemento", Trim(vlNumero)) Else .AddWithValue("@Empresa_Complemento", DBNull.Value)
                        .AddWithValue("@Empresa_Bairro", Trim(vlBairro))
                        .AddWithValue("@Empresa_Cep", Trim(vlCep))
                        .AddWithValue("@Empresa_Fone1", Trim(vlFone1))
                        If Not IsDBNull(Trim(vlFone2)) Then .AddWithValue("@Empresa_Fone2", Trim(vlFone2)) Else .AddWithValue("@Empresa_Fone2", DBNull.Value)
                        If Not IsDBNull(Trim(vlFax)) Then .AddWithValue("@Empresa_Fax", Trim(vlFax)) Else .AddWithValue("@Empresa_Fax", DBNull.Value)
                        If Not IsDBNull(Trim(vlContato)) Then .AddWithValue("@Empresa_Contato", Trim(vlContato)) Else .AddWithValue("@Empresa_Contato", DBNull.Value)
                        If Not IsDBNull(Trim(vlCelular)) Then .AddWithValue("@Empresa_Celular", Trim(vlCelular)) Else .AddWithValue("@Empresa_Celular", DBNull.Value)
                        If Not IsDBNull(Trim(vlEmail)) Then .AddWithValue("@Empresa_Email", LCase(Trim(vlEmail))) Else .AddWithValue("@Empresa_Email", DBNull.Value)
                        If Not IsDBNull(Trim(vlSite)) Then .AddWithValue("@Empresa_Site", LCase(Trim(vlSite))) Else .AddWithValue("@Empresa_Site", DBNull.Value)
                        .AddWithValue("@Empresa_Filial", vlFilial)
                        If Not IsDBNull(Trim(vlAtivo)) Then .AddWithValue("@Empresa_Ativo", LCase(Trim(vlAtivo))) Else .AddWithValue("@Empresa_Ativo", "False")
                        .AddWithValue("@Empresa_Aniversario", CDate(vlDataAniversario))
                        If Not IsDBNull(vlArquivo) Then .AddWithValue("@Empresa_Logo", vlLogomarca) Else .AddWithValue("@Empresa_Logo", DBNull.Value)
                    End With
    
                    If Busca(" Empresa_Codigo <> " & vlCodigo & " AND Empresa_Filial = " & vlFilial & " AND Empresa_CPF = '" & Trim(vlCNPJ) & "' ") Then
                        pLabel.CssClass = "label atencao"
                        pLabel.Text = "Registro já cadastrado!"
                        Return "Registro já cadastrado!"
                    Else
                        ' Cria uma instância do objeto de conexao com o banco de dados
                        ' e preenche os dados necessarios para realizar as operacoes
                        Db = New classDatabase.DbSql
                        Db.NomeTabela = "c001_empresas"
                        Return Db.Salvar(Cm, "Cargo_Codigo", vlCodigo)
                    End If
    
                Catch ex As Exception
                    pLabel.CssClass = "label atencao"
                    pLabel.Text = "Registro já cadastrado!"
                    Return "Ocorreu um erro ao tentar alterar o registro:" & ex.Message
                Finally
                    Cm = Nothing
                    Db = Nothing
                End Try
    
    
            End Function
    
            Public Function Excluir() As String
                Try
                    ' Cria uma instância do objeto de conexao com o banco de dados
                    ' e preenche os dados necessarios para realizar as operacoes
                    Db = New classDatabase.DbSql
                    Db.NomeTabela = "c001_empresas"
                    Return Db.Excluir("Empresa_Codigo", vlCodigo)
                Catch ex As Exception
                    Return "Ocorreu um erro ao tentar excluir o registro: " & ex.Message
                Finally
                    Db = Nothing
                End Try
    
            End Function
    
            Public Function Consultar(ByVal pParametro As String, ByVal pOrdem As String) As Data.DataSet
                Dim Sql As New System.Text.StringBuilder
    
                Sql.Append(" SELECT Empresa_Codigo, Categoria_Codigo, Cidade_Codigo, Empresa_Pessoa, Empresa_CPF, Empresa_RG, ")
                Sql.Append(" Empresa_RazaoSocial, Empresa_Fantasia, Empresa_Endereco, ")
                Sql.Append(" Empresa_Numero, Empresa_Complemento, Empresa_Bairro, Empresa_Cep, Empresa_Fone1, ")
                Sql.Append(" Empresa_Fone2, Empresa_Fax, Empresa_Contato, Empresa_Celular, Empresa_Email, ")
                Sql.Append(" Empresa_Site, Empresa_Filial, Empresa_Ativo, Empresa_Aniversario, Empresa_Logo ")
                Sql.Append(" FROM c001_empresas ")
    
    
                If Trim(pParametro) <> "" Then Sql.Append(" WHERE " & Trim(pParametro) & "")
                If Trim(pOrdem) <> DBNull.Value.ToString Then Sql.Append(" ORDER BY " & pOrdem & " ") Else Sql.Append(" ORDER BY Empresa_Pessoa, Empresa_Filial, Empresa_RazaoSocial ")
    
                Try
                    ' Cria uma instância do objeto de conexao com o banco de dados
                    ' e preenche os dados necessarios para realizar as operacoes
                    Db = New classDatabase.DbSql
                    Return Db.Consultar(Sql.ToString)
                Catch ex As Exception
                    Return Nothing
                Finally
                    Db = Nothing
                End Try
    
            End Function
    
            Public Function ConsultaAvancada(ByVal pParametro As String, ByVal pOrdem As String) As Data.DataSet
                Dim Sql As New System.Text.StringBuilder
    
                Sql.Append(" SELECT A.Empresa_Codigo, A.Categoria_Codigo, A.Cidade_Codigo, A.Empresa_Pessoa, A.Empresa_CPF, ")
                Sql.Append(" A.Empresa_RG, A.Empresa_RazaoSocial, A.Empresa_Fantasia, A.Empresa_Endereco, ")
                Sql.Append(" A.Empresa_Numero, A.Empresa_Complemento, A.Empresa_Bairro, A.Empresa_Cep, ")
                Sql.Append(" A.Empresa_Fone1, A.Empresa_Fone2, A.Empresa_Fax, A.Empresa_Contato, A.Empresa_Celular, A.Empresa_Email, ")
                Sql.Append(" A.Empresa_Site, A.Empresa_Filial, A.Empresa_Ativo, A.Empresa_Aniversario, A.Empresa_Logo, ")
                Sql.Append(" B.Cidade_Nome, B.Cidade_Estado, B.Cidade_DDD, B.Pais_Codigo, ")
                Sql.Append(" C.Pais_Nome, D.Categoria_Nome, D.Categoria_Modulo, ")
    
                Sql.Append(" CONVERT(VARCHAR(10), A.Empresa_Aniversario, 103) AS ANIVERSARIO, ")
                Sql.Append(" CASE WHEN A.Empresa_Pessoa = 'F' THEN 'Física' ELSE 'Jurídica' END AS PESSOA, ")
                Sql.Append(" CASE WHEN A.Empresa_Pessoa = 'F' THEN '999,999,999-99' ELSE '99,999,999/9999-99' END AS MASCARA, ")
    
                Sql.Append(" CASE WHEN A.Empresa_Filial = 0 THEN 'Matriz' ELSE ('Filial ' + CAST(A.Empresa_Filial AS VARCHAR)) END AS FILIAL ")
    
                Sql.Append(" FROM c001_empresas A ")
                Sql.Append(" INNER JOIN a002_cidades B ON (A.Cidade_Codigo = B.Cidade_Codigo) ")
                Sql.Append(" INNER JOIN a001_paises C ON (B.Pais_Codigo = C.Pais_Codigo) ")
                Sql.Append(" INNER JOIN a007_categorias D ON (A.Categoria_Codigo = D.Categoria_Codigo) ")
    
    
                If Trim(pParametro) <> "" Then Sql.Append(" WHERE " & Trim(pParametro) & "")
                If Trim(pOrdem) <> DBNull.Value.ToString Then Sql.Append(" ORDER BY " & pOrdem & " ") Else Sql.Append(" ORDER BY Empresa_Pessoa, Empresa_Filial, Empresa_RazaoSocial ")
    
                Try
                    ' Cria uma instância do objeto de conexao com o banco de dados
                    ' e preenche os dados necessarios para realizar as operacoes
                    Db = New classDatabase.DbSql
                    Return Db.Consultar(Sql.ToString)
                Catch ex As Exception
                    Return Nothing
                Finally
                    Db = Nothing
                End Try
    
            End Function
    
            'Função para retornar verdadeiro quando estação encontrada
            Private Function Busca(ByVal pParametro As String) As Boolean
                Dim Ds As Data.DataSet
                Ds = Consultar(pParametro, "")
                If Ds.Tables(0).Rows.Count <> 0 Then
                    Return True
                Else
                    Return False
                End If
            End Function
    
        End Class
    
    End Namespace
    
    

    Como posso resolver este problema?

    Grato,

    Ilano.

    segunda-feira, 7 de outubro de 2013 18:52

Respostas

  • Se a variável Upload só recebe Nothing, você está com problema na execução do POST.

    Verifique seu "form" na página. Provavelmente será necessário um processo de upload separado dos demais dados da página, isolando o envio do arquivo para o site.

    Não esqueça de Votar como útil, todas respostas que te ajudaram e "Marcar como resposta" caso tenha resolvido.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA 
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    • Sugerido como Resposta Giovani Cr quinta-feira, 17 de outubro de 2013 12:54
    • Marcado como Resposta Giovani Cr terça-feira, 22 de outubro de 2013 12:48
    terça-feira, 15 de outubro de 2013 20:33

Todas as Respostas

  • Ilano,

    Isto ocorre porque o propriedade "Logomarca" esta recebendo em algum momento o valor "vazio".

    Acredito que o melhor a fazer neste seu caso é:

    - declarar o data type da propriedade "Logomarca" como Byte;

    - dentro do Set na propriedade, fazer uma verificação (IF) se o valor for "vazio setar nulo" ;

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
     Microsoft Partner | MTA 
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    • Sugerido como Resposta Durval Ramos segunda-feira, 7 de outubro de 2013 18:59
    segunda-feira, 7 de outubro de 2013 18:59
  • Olá Durval Ramos,

    Desde já agradeço sua atenção. Você disse que dentro do Set na propriedade, fazer uma verificação (IF) se o valor for "vazio setar nulo", como faço isso? Você pode exemplificar?

    terça-feira, 8 de outubro de 2013 14:54
  • No caso de VB.Net, você precisa definir como "Nothing", Segue exemplo abaixo:

    Property Logomarca() Get Return vlLogomarca End Get Set(ByVal value)

    IF vlLogomarca = "" then
    vlLogomarca = Nothing ELSE vlLogomarca = value END IF

    End Set End Property

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA 
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    terça-feira, 8 de outubro de 2013 17:21
  • Olá Durval Ramos,

    Agora está dando o erro abaixo ao fazer o update quando tento passar valor nulo, ou seja, quando não tem imagem selecionada no FileUpload1.

    Erro: A conversão implícita do tipo de dados nvarchar em varbinary(max) não é permitida. Use a função CONVERT para executar essa consulta.

    Como posso resolver isso?

    Grato,

    Ilano.



    • Editado ilanocf domingo, 13 de outubro de 2013 13:05 Correção na tread
    sábado, 12 de outubro de 2013 23:42
  • Então a condição de verificação deve ser diferente, altere o IF como indicado abaixo

    IF not IsNothing(vlLogomarca) then
    vlLogomarca = value
    ELSE
    vlLogomarca = Nothing
    END IF


    Abraços,

    Durval Ramos
    Microsoft Partner | MTA 
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    segunda-feira, 14 de outubro de 2013 11:18
  • Olá Durval,

    Mais uma vez agradeço sua atenção. Cara, é o seguinte: fazendo um brackpoint percebi que a variável Upload recebe o valor do FileUpload1, mas lá no objeto objEmpresas a variável vlLogomarca fica vazia. Veja só o código:

    Private Sub AssociaCampos()
            Dim Ds As Data.DataSet
            Dim pParametro As String
            Dim Upload As Byte()
            If LbCodigo.Text > 0 Then pParametro = " Empresa_Codigo <> " & LbCodigo.Text & " AND " Else pParametro = DBNull.Value.ToString
    
            Ds = Empresas.Consultar(pParametro & " Empresa_RazaoSocial = '" & Trim(TxtRazaoSocial.Text) & _
                                      "' AND Empresa_Filial = " & rblFilial.SelectedValue, "")
    
            Dim pCNPJ, pCelular, pFone1, pFone2, pFax, pCep, pData As String
    
            pCNPJ = TxtCNPJ.Text
            pCNPJ = Replace(pCNPJ, ".", "")
            pCNPJ = Replace(pCNPJ, "-", "")
            pCNPJ = Replace(pCNPJ, "/", "")
            pCNPJ = Replace(pCNPJ, "_", "")
    
            pCelular = TxtCelular.Text
            pCelular = Replace(pCelular, ".", "")
            pCelular = Replace(pCelular, "-", "")
            pCelular = Replace(pCelular, "/", "")
            pCelular = Replace(pCelular, "_", "")
            pCelular = Replace(pCelular, "(", "")
            pCelular = Replace(pCelular, ")", "")
    
            pFone1 = TxtFone1.Text
            pFone1 = Replace(pFone1, ".", "")
            pFone1 = Replace(pFone1, "-", "")
            pFone1 = Replace(pFone1, "/", "")
            pFone1 = Replace(pFone1, "_", "")
            pFone1 = Replace(pFone1, "(", "")
            pFone1 = Replace(pFone1, ")", "")
    
            pFone2 = TxtFone2.Text
            pFone2 = Replace(pFone2, ".", "")
            pFone2 = Replace(pFone2, "-", "")
            pFone2 = Replace(pFone2, "/", "")
            pFone2 = Replace(pFone2, "_", "")
            pFone2 = Replace(pFone2, "(", "")
            pFone2 = Replace(pFone2, ")", "")
    
            pFax = TxtFax.Text
            pFax = Replace(pFax, ".", "")
            pFax = Replace(pFax, "-", "")
            pFax = Replace(pFax, "/", "")
            pFax = Replace(pFax, "_", "")
            pFax = Replace(pFax, "(", "")
            pFax = Replace(pFax, ")", "")
    
            pCep = TxtCep.Text
            pCep = Replace(pCep, ".", "")
            pCep = Replace(pCep, "-", "")
            pCep = Replace(pCep, "/", "")
            pCep = Replace(pCep, "_", "")
    
            pData = TxtDataEmpresa.Text
            pData = Replace(pData, ".", "")
            pData = Replace(pData, "-", "")
            pData = Replace(pData, "/", "")
            pData = Replace(pData, "_", "")
    
            'Upload = Nothing
            If FileUpload1.HasFile Then Upload = FileUpload1.FileBytes Else Upload = Nothing
    
            If Not Ds Is Nothing Then
                If Ds.Tables(0).Rows.Count = 0 Then
    
                    With Empresas
                        .Codigo = LbCodigo.Text
                        .Categoria = DDLCategoria.SelectedValue
                        .Pessoa = rblPessoa.SelectedValue
                        .Cidade = DDLCidade.SelectedValue
                        .CNPJ = Trim(TxtCNPJ.Text)
                        .CGF = Trim(TxtCGF.Text)
                        .RazaoSocial = Trim(TxtRazaoSocial.Text)
                        .Fantasia = Trim(TxtFantasia.Text)
                        .Endereco = Trim(TxtEndereco.Text)
                        .Numero = Trim(TxtNumero.Text)
                        If Trim(TxtComplemento.Text) <> DBNull.Value.ToString Then .Complemento = Trim(TxtComplemento.Text) Else .Complemento = DBNull.Value.ToString
                        .Bairro = Trim(TxtBairro.Text)
                        If Trim(pCep) <> DBNull.Value.ToString Then .Cep = TxtCep.Text Else .Cep = DBNull.Value.ToString
                        .Fone1 = Trim(TxtFone1.Text)
                        If Trim(pFone2) <> DBNull.Value.ToString Then .Fone2 = Trim(TxtFone2.Text) Else .Fone2 = DBNull.Value.ToString
                        If Trim(pFax) <> DBNull.Value.ToString Then .Fax = Trim(TxtFax.Text) Else .Fax = DBNull.Value.ToString
                        .Contato = Trim(TxtContato.Text)
                        If Trim(pCelular) <> DBNull.Value.ToString Then .Celular = Trim(TxtCelular.Text) Else .Celular = DBNull.Value.ToString
                        .Email = Trim(LCase(TxtEmail.Text))
                        .Site = Trim(LCase(TxtSite.Text))
                        .Filial = rblFilial.SelectedValue
                        If Trim(pData) <> DBNull.Value.ToString Then .DataAniversario = TxtDataEmpresa.Text Else .DataAniversario = Trim(pData)
                        If cbAtivo.Checked = True Then .Ativo = "True" Else .Ativo = "False"
    
                        If FileUpload1.HasFile Then
                            .Logomarca = Upload 'FileUpload1.FileBytes
                            .Arquivo = FileUpload1.FileName
                        Else
                            If Not FileUpload1.HasFile Then
                                .Arquivo = DBNull.Value.ToString
                            End If
                        End If
    
                    End With
    
    
                    If LbCodigo.Text = 0 Then
                        Fn.Alerta(Empresas.Inserir(LbMensagem), Page)
                        If FileUpload1.HasFile Then FileUpload1.PostedFile.SaveAs(Server.MapPath("~/imagens/jpg/" & FileUpload1.FileName))
                    Else
                        If LbCodigo.Text > 0 Then
                            Fn.Alerta(Empresas.Alterar(LbMensagem), Page)
                            If FileUpload1.HasFile Then FileUpload1.PostedFile.SaveAs(Server.MapPath("~/imagens/jpg/" & FileUpload1.FileName))
                        End If
                    End If
    
                    LimpaCampos()
    
                Else
                    If Ds.Tables(0).Rows.Count > 0 Then
                        LbMensagem.Text = "Este registro já foi cadastrado."
                    End If
                End If
            End If
    
    
        End Sub

     Private vlCodigo As Integer
            Private vlCategoria As Integer
            Private vlCidade As Integer
            Private vlPessoa As String
            Private vlCNPJ As String
            Private vlCGF As String
            Private vlRazaoSocial As String
            Private vlFantasia As String
            Private vlEndereco As String
            Private vlNumero As String
            Private vlComplemento As String
            Private vlBairro As String
            Private vlCep As String
            Private vlFone1 As String
            Private vlFone2 As String
            Private vlFax As String
            Private vlContato As String
            Private vlCelular As String
            Private vlEmail As String
            Private vlSite As String
            Private vlFilial As Integer
            Private vlAtivo As String
            Private vlDataAniversario As String
            Private vlLogomarca As Byte()
            Private vlArquivo As String
    
    Public Function Inserir(ByVal pLabel As WebControls.Label) As String
                Try
                    Cm = New SqlCommand
                    ' Gera o código
                    Db = New classDatabase.DbSql
                    Db.NomeTabela = "c001_empresas"
                    vlCodigo = Db.Chave("Empresa_Codigo")
                    Db = Nothing
    
                    With Cm.Parameters
                        .AddWithValue("@Empresa_Codigo", vlCodigo)
                        .AddWithValue("@Categoria_Codigo", vlCategoria)
                        .AddWithValue("@Cidade_Codigo", vlCidade)
                        .AddWithValue("@Empresa_Pessoa", vlPessoa)
                        .AddWithValue("@Empresa_CPF", vlCNPJ)
                        If Trim(vlCGF) <> "" Then .AddWithValue("@Empresa_RG", vlCGF) Else .AddWithValue("@Empresa_RG", DBNull.Value)
                        .AddWithValue("@Empresa_RazaoSocial", Trim(vlRazaoSocial))
                        .AddWithValue("@Empresa_Fantasia", Trim(vlFantasia))
                        .AddWithValue("@Empresa_Endereco", Trim(vlEndereco))
                        .AddWithValue("@Empresa_Numero", Trim(vlNumero))
                        If Trim(vlComplemento) <> "" Then .AddWithValue("@Empresa_Complemento", Trim(vlComplemento)) Else .AddWithValue("@Empresa_Complemento", DBNull.Value)
                        .AddWithValue("@Empresa_Bairro", Trim(vlBairro))
                        .AddWithValue("@Empresa_Cep", Trim(vlCep))
                        .AddWithValue("@Empresa_Fone1", Trim(vlFone1))
                        If Trim(vlFone2) <> "" Then .AddWithValue("@Empresa_Fone2", Trim(vlFone2)) Else .AddWithValue("@Empresa_Fone2", DBNull.Value)
                        If Trim(vlFax) <> "" Then .AddWithValue("@Empresa_Fax", Trim(vlFax)) Else .AddWithValue("@Empresa_Fax", DBNull.Value)
                        If Trim(vlContato) <> "" Then .AddWithValue("@Empresa_Contato", Trim(vlContato)) Else .AddWithValue("@Empresa_Contato", DBNull.Value)
                        If Trim(vlCelular) <> "" Then .AddWithValue("@Empresa_Celular", Trim(vlCelular)) Else .AddWithValue("@Empresa_Celular", DBNull.Value)
                        If Trim(vlEmail) <> "" Then .AddWithValue("@Empresa_Email", LCase(Trim(vlEmail))) Else .AddWithValue("@Empresa_Email", DBNull.Value)
                        If Trim(vlSite) <> "" Then .AddWithValue("@Empresa_Site", LCase(Trim(vlSite))) Else .AddWithValue("@Empresa_Site", DBNull.Value)
                        If Trim(vlAtivo) <> "" Then .AddWithValue("@Empresa_Ativo", LCase(Trim(vlAtivo))) Else .AddWithValue("@Empresa_Ativo", "False")
                        .AddWithValue("@Empresa_Filial", vlFilial)
                        .AddWithValue("@Empresa_Aniversario", CDate(vlDataAniversario))
                        If Not IsNothing(vlLogomarca) Then .AddWithValue("@Empresa_Logo", vlLogomarca) Else .AddWithValue("@Empresa_Logo", Nothing)
                        If Trim(vlArquivo) <> "" Then .AddWithValue("@Empresa_NomeLogo", Trim(vlArquivo)) Else .AddWithValue("@Empresa_NomeLogo", DBNull.Value)
                    End With
    
                    If Busca(" Empresa_Filial = " & vlFilial & " AND Empresa_CPF = '" & Trim(vlCNPJ) & "' ") Then
                        pLabel.CssClass = "label atencao"
                        pLabel.Text = "Registro já cadastrado!"
                        Return "Registro já cadastrado!"
                    Else
                        ' Cria uma instância do objeto de conexao com o banco de dados
                        ' e preenche os dados necessarios para realizar as operacoes
                        Db = New classDatabase.DbSql
                        Db.NomeTabela = "c001_empresas"
                        Return Db.Salvar(Cm)
                    End If
    
                Catch ex As Exception
                    pLabel.CssClass = "label atencao"
                    pLabel.Text = "Registro já cadastrado!"
                    Return "Ocorreu um erro ao tentar incluir um novo registro: " & ex.Message
    
                Finally
                    Cm = Nothing
                    Db = Nothing
    
                End Try
    
            End Function

    O que está errado nesse código?

    segunda-feira, 14 de outubro de 2013 23:44
  • - Antes de qualquer alteração, verifique se a variável Upload realmente possui conteúdo ( não está Nothing);

    - Se a variável possuir conteúdo, então tente inicializar a variável. Veja o exemplo abaixo:

     

                        If FileUpload1.HasFile Then

                            .Logomarca =  New Byte()

                          
                            .Logomarca = Upload 'FileUpload1.FileBytes
                           
    .Arquivo = FileUpload1.FileName
                       
    Else
                           
    If Not FileUpload1.HasFile Then
                               
    .Arquivo = DBNull.Value.ToString
                           
    End If
                       
    End If

    Não esqueça de Votar como útil, todas respostas que te ajudaram e "Marcar como resposta" caso tenha resolvido.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA 
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    terça-feira, 15 de outubro de 2013 14:22
  • Cara, a variável Upload continua recebendo Nothing.

    Já a variável Arquivo recebe o nome do arquivo.

    • Editado ilanocf terça-feira, 15 de outubro de 2013 18:07
    terça-feira, 15 de outubro de 2013 17:53
  • Se a variável Upload só recebe Nothing, você está com problema na execução do POST.

    Verifique seu "form" na página. Provavelmente será necessário um processo de upload separado dos demais dados da página, isolando o envio do arquivo para o site.

    Não esqueça de Votar como útil, todas respostas que te ajudaram e "Marcar como resposta" caso tenha resolvido.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA 
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    • Sugerido como Resposta Giovani Cr quinta-feira, 17 de outubro de 2013 12:54
    • Marcado como Resposta Giovani Cr terça-feira, 22 de outubro de 2013 12:48
    terça-feira, 15 de outubro de 2013 20:33
  • Joga o arquivo numa variável Stream e converte pra byte Ex.

    dim vloArquivo as Stream
    dim vlobyte as Byte
    
    vloArquivo = objFileUpload.PostedFile.InputStream
    
    
    If Not vloArquivo Is Nothing Then
       If vloArquivo.Length > 0 Then
          vlobyte = New Byte(vloArquivo.Length + 1) {}
          vloArquivo.Read(vlobyte, 0, vloArquivo.Length)
       End If
    End If
    
    'Na hora de salvar no banco salve o vlobyte, que é um arry de bayte                
    


    Marquinhos Não esqueça de qualificar a resposta.


    • Editado Marquinhos Oliveira terça-feira, 15 de outubro de 2013 21:51
    • Sugerido como Resposta Giovani Cr quinta-feira, 17 de outubro de 2013 17:52
    terça-feira, 15 de outubro de 2013 21:50