Incluir e alterar campo data no sql server 2012 do DateTimePicker

Boa tarde pessoal.

Estou criando uma aplicação para micro, windows, com vb.net e bd sql server 2012. Estou com problema ao incluir ou alterar a data com valor NULL. Estava dando erro ao Incluir e me indicaram esta function:

Function VerificaData(ByVal Campo As DateTimePicker) As String
        If Campo.Text.Equals("  /  /") Then
            Return "Null"
        Else
            Dim data As String = Campo.Text
            Dim vetor = data.Split("/")
            Dim strDataCorrigida = vetor(2) + "-" + vetor(1) + "-" + vetor(0)
            Dim novaData As DateTime = Convert.ToDateTime(strDataCorrigida)
            Return novaData
            'Return "'" & Campo.Text & "'"
        End If
    End Function

Ela formata corretamente ao incluir, mas não está funcionando quando altero (Update) na tabela. Não aceita o Null: Dá erro e da a mensagem: "A Conversão da cadeia de Caracteres 'Null' no tipo 'Date' não é válida. ";  Preciso passar a data vazia pois a data de saída só quando o aluno concluir ou sair por qualquer motivo... Rotina que faz a alteração:

    Public Sub atualizarDados(ByVal Codigo As Integer, ByVal nome As String, ByVal dt_Nasc As Date, ByVal Sexo As String, ByVal Telef1 As String, ByVal Telef2 As String, ByVal Telef3 As String, ByVal Operadora As String, ByVal Logradouro As String, ByVal Nro As String, ByVal Complemento As String, ByVal Bairro As String, ByVal Cidade As String, ByVal Estado As String, ByVal Cep As String, ByVal Curso As String, ByVal dt_Inicio As Date, ByVal dt_Fim As Date, ByVal Status As Boolean, ByVal Pai As String, ByVal Mae As String, ByVal Responsavel As String, ByVal Parentesco As String, ByVal Nacionalidade As String, ByVal Naturalidade As String, ByVal Est_Nasc As String, ByVal Identidade As String, ByVal Emissor As String, ByVal Cpf As String, ByVal Estuda As Boolean, ByVal Escola As String, ByVal Serie As String, ByVal Email As String, ByVal Obs As String, ByVal dt_Inclusao As Date, ByVal arrImagem() As Byte, ByVal strImagem As String)
     

   Try
            cn = getConexaoDB()
            Cmd.Connection = cn
            Cmd.CommandText = ""
            Cmd.CommandText = "Update Alunos Set Nome=@Nome, dt_Nasc=@DT_Nasc, Sexo=@Sexo, Telef1=@Telef1, Telef2=@Telef2, Telef3=@Telef3, Operadora=@Operadora, Logradouro=@Logradouro, Nro=@Nro, Complemento=@Complemento, Bairro=@Bairro, Cidade=@Cidade, Estado=@Estado, Cep=@Cep, Curso=@Curso, dt_Inicio=@Dt_Inicio, dt_Fim=@Dt_Fim, Status=@Status, Pai=@Pai, Mae=@Mae, Responsavel=@Responsavel, Parentesco=@Parentesco, Nacionalidade=@Nacionalidade, Naturalidade=@Naturalidade, Est_Nasc=@Est_nasc, Identidade=@Identidade, Emissor=@Emissor, Cpf=@Cpf, Estuda=@Estuda, Escola=@Estuda, Serie=@Serie, Email=@Email, Obs=@Obs, dt_Inclusao=@Dt_Inclusao, Foto=@Imagem" & " Where Id_Alu =" & Codigo

            Cmd.Parameters.Add(New SqlParameter("@nome", SqlDbType.NVarChar)).Value = nome
            Cmd.Parameters.Add(New SqlParameter("@DT_Nasc", SqlDbType.Date)).Value = dt_Nasc
            Cmd.Parameters.Add(New SqlParameter("@Sexo", SqlDbType.NVarChar)).Value = Sexo
            Cmd.Parameters.Add(New SqlParameter("@Telef1", SqlDbType.NVarChar)).Value = Telef1
            Cmd.Parameters.Add(New SqlParameter("@Telef2", SqlDbType.NVarChar)).Value = Telef2
            Cmd.Parameters.Add(New SqlParameter("@Telef3", SqlDbType.NVarChar)).Value = Telef3
            Cmd.Parameters.Add(New SqlParameter("@Operadora", SqlDbType.NVarChar)).Value = Operadora
            Cmd.Parameters.Add(New SqlParameter("@Logradouro", SqlDbType.NVarChar)).Value = Logradouro
            Cmd.Parameters.Add(New SqlParameter("@Nro", SqlDbType.NVarChar)).Value = Nro
            Cmd.Parameters.Add(New SqlParameter("@Complemento", SqlDbType.NVarChar)).Value = Complemento
            Cmd.Parameters.Add(New SqlParameter("@Bairro", SqlDbType.NVarChar)).Value = Bairro
            Cmd.Parameters.Add(New SqlParameter("@Cidade", SqlDbType.NVarChar)).Value = Cidade
            Cmd.Parameters.Add(New SqlParameter("@Estado", SqlDbType.NVarChar)).Value = Estado
            Cmd.Parameters.Add(New SqlParameter("@Cep", SqlDbType.NVarChar)).Value = Cep
            Cmd.Parameters.Add(New SqlParameter("@Curso", SqlDbType.NVarChar)).Value = Curso
            Cmd.Parameters.Add(New SqlParameter("@DT_Inicio", SqlDbType.Date)).Value = dt_Inicio
            Cmd.Parameters.Add(New SqlParameter("@DT_Fim", SqlDbType.Date)).Value = dt_Fim
            Cmd.Parameters.Add(New SqlParameter("@Status", SqlDbType.Bit)).Value = Status
            Cmd.Parameters.Add(New SqlParameter("@Pai", SqlDbType.NVarChar)).Value = Pai
            Cmd.Parameters.Add(New SqlParameter("@Mae", SqlDbType.NVarChar)).Value = Mae
            Cmd.Parameters.Add(New SqlParameter("@Responsavel", SqlDbType.NVarChar)).Value = Responsavel
            Cmd.Parameters.Add(New SqlParameter("@Parentesco", SqlDbType.NVarChar)).Value = Parentesco
            Cmd.Parameters.Add(New SqlParameter("@Nacionalidade", SqlDbType.NVarChar)).Value = Nacionalidade
            Cmd.Parameters.Add(New SqlParameter("@Naturalidade", SqlDbType.NVarChar)).Value = Naturalidade
            Cmd.Parameters.Add(New SqlParameter("@Est_Nasc", SqlDbType.NVarChar)).Value = Est_Nasc
            Cmd.Parameters.Add(New SqlParameter("@Identidade", SqlDbType.NVarChar)).Value = Identidade
            Cmd.Parameters.Add(New SqlParameter("@Emissor", SqlDbType.NVarChar)).Value = Emissor
            Cmd.Parameters.Add(New SqlParameter("@Cpf", SqlDbType.NVarChar)).Value = Cpf
            Cmd.Parameters.Add(New SqlParameter("@Estuda", SqlDbType.Bit)).Value = Estuda
            Cmd.Parameters.Add(New SqlParameter("@Escola", SqlDbType.NVarChar)).Value = Escola
            Cmd.Parameters.Add(New SqlParameter("@Serie", SqlDbType.NVarChar)).Value = Serie
            Cmd.Parameters.Add(New SqlParameter("@Email", SqlDbType.NVarChar)).Value = Email
            Cmd.Parameters.Add(New SqlParameter("@Obs", SqlDbType.NVarChar)).Value = Obs
            Cmd.Parameters.Add(New SqlParameter("@DT_Inclusao", SqlDbType.Date)).Value = dt_Inclusao
            If strImagem = "?" Then
                Cmd.Parameters.Add(New SqlParameter("@Imagem", SqlDbType.Image)).Value = arrImagem
            End If
            Cmd.ExecuteNonQuery()
        Catch ex As Exception
            Throw ex
        Finally
            closeConexaoDB(cn)
        End Try
    End Sub

Podem me dar uma dica ai ?

Obrigado.

Exibições: 78

Respostas a este tópico

Amigo isso deve ser alterado no banco de dados, vá na tabela encontre as propriedades, 2 e melhor ao inves de "Null" ponha "00-00-00"  se vc quizer me envie o código fonte e dai passo esta melhorando.

RSS

© 2017   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço