none
Conversion failed when converting date and/or time from character string. RRS feed

  • Pergunta

  • Sempre que tento salvar um registro, tenho esse erro apresentado:

    Conversion failed when converting date and/or time from character string.

    ---CÓDIGO DO FORM---

    Imports System.Data.SqlClient

    Public Class frmTitulares

        Private Sub frmTitulares_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            conectar = New SqlConnection
            conectar.ConnectionString = cnn
        End Sub

        Private Sub limpar()
            tb_matricula.Text = ""
            tb_plano.Text = ""
            tb_vigencia.Text = ""
            tb_valor.Text = ""
            tb_nome.Text = ""
            tb_sexo.Text = ""
            tb_rg.Text = ""
            tb_orgaoemissor.Text = ""
            tb_cpf.Text = ""
            tb_estadocivil.Text = ""
            tb_nascimento.Text =
            tb_genitora.Text = ""
            tb_endereco.Text = ""
            tb_bairro.Text = ""
            tb_cep.Text =
            tb_cidade.Text = ""
            tb_uf.Text = ""
            tb_telefone1.Text = ""
            tb_telefone2.Text = ""
            tb_email.Text = ""
            tb_reparticao.Text = ""
            tb_cargo.Text = ""
            tb_observacao.Text = ""
        End Sub

        'primeiro evento de teclado
        Private Sub tb_matricula_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_matricula.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_plano.Focus()
            End If
        End Sub
        'evento para aparecer o registro inteiro apenas pela inicial do cpf
        Private Sub tb_cpf_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_cpf.KeyUp

            sql = "select * from tbltitular where cpf="
            sql += "'" & tb_cpf.Text & "'"
            conectar.Open()
            adaptar = New SqlDataAdapter(sql, conectar)
            conectar.Close()
            local = New DataSet
            adaptar.Fill(local, "tbltitular")
            resultado = local.Tables("tbltitular").Rows.Count

            If resultado > 0 Then
                registro = local.Tables("tbltitular").Rows(1)
                tb_matricula.Text = registro("matricula")
                tb_plano.Text = registro("plano")
                tb_vigencia.Text = registro("vigencia")
                tb_valor.Text = registro("valor")
                tb_nome.Text = registro("nome")
                tb_sexo.Text = registro("sexo")
                tb_rg.Text = registro("rg")
                tb_orgaoemissor.Text = registro("orgaoemissor")
                tb_cpf.Text = registro("cpf")
                tb_estadocivil.Text = registro("estadocivil")
                tb_nascimento.Text = registro("nascimento")
                tb_genitora.Text = registro("genitora")
                tb_endereco.Text = registro("endereco")
                tb_bairro.Text = registro("bairro")
                tb_cep.Text = registro("cep")
                tb_cidade.Text = registro("cidade")
                tb_uf.Text = registro("uf")
                tb_telefone1.Text = registro("telefone1")
                tb_telefone2.Text = registro("telefone2")
                tb_email.Text = registro("email")
                tb_reparticao.Text = registro("reparticao")
                tb_cargo.Text = registro("cargo")
                tb_observacao.Text = registro("observacao")
                btn_salvar.Text = "Editar"
                tb_cpf.Focus()

            ElseIf resultado = 0 Then
                btn_salvar.Text = "Inserir"

            End If

        End Sub
        'fim do primeiro evento de teclado


        Private Sub tb_cpf_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_cpf.Validated
            If tb_cpf.Text = "" Then
                lb_mensagem.Text = "Preencha o campo CPF"
                tb_cpf.Focus()
            End If

            sql = "select * from tbltitular where cpf="
            sql += "'" & tb_cpf.Text & "'"
            conectar.Open()
            adaptar = New SqlDataAdapter(sql, conectar)
            conectar.Close()
            local = New DataSet
            adaptar.Fill(local, "tbltitular")
            resultado = local.Tables("tbltitular").Rows.Count

            If resultado > 0 Then
                registro = local.Tables("tbltitular").Rows(0)
                tb_matricula.Text = registro("matricula")
                tb_plano.Text = registro("plano")
                tb_vigencia.Text = registro("vigencia")
                tb_valor.Text = registro("valor")
                tb_nome.Text = registro("nome")
                tb_sexo.Text = registro("sexo")
                tb_rg.Text = registro("rg")
                tb_orgaoemissor.Text = registro("orgaoemissor")
                tb_cpf.Text = registro("cpf")
                tb_estadocivil.Text = registro("estadocivil")
                tb_nascimento.Text = registro("nascimento")
                tb_genitora.Text = registro("genitora")
                tb_endereco.Text = registro("endereco")
                tb_bairro.Text = registro("bairro")
                tb_cep.Text = registro("cep")
                tb_cidade.Text = registro("cidade")
                tb_uf.Text = registro("uf")
                tb_telefone1.Text = registro("telefone1")
                tb_telefone2.Text = registro("telefone2")
                tb_email.Text = registro("email")
                tb_reparticao.Text = registro("reparticao")
                tb_cargo.Text = registro("cargo")
                tb_observacao.Text = registro("observacao")
                btn_salvar.Text = "Editar"
                tb_matricula.Focus()

            ElseIf resultado = 0 Then
                btn_salvar.Text = "Inserir"

            End If

        End Sub

        Private Sub tb_codigo_Validated(ByVal sender As Object, ByVal e As EventArgs)
            contador = contador + 1
        End Sub

        Private Sub btn_deletar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_deletar.Click
            conectar.Close()
            sql = "delete from tbltitular where cpf='" & tb_cpf.Text & "'"
            If MsgBox("Está certo que deseja eliminar o registro?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                If resultado > 0 Then
                    conectar.Open()
                    comando = New SqlCommand(sql)
                    comando.Connection = conectar
                    comando.ExecuteNonQuery()
                    conectar.Close()

                Else
                    lb_mensagem.Text = "Não existem registros para serem eliminados."

                End If
            End If

            limpar()
            tb_cpf.Text = ""
            tb_cpf.Focus()

        End Sub

        Private Sub btn_salvar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_salvar.Click
            If resultado > 0 Then
                sql = "update tbltitular set matricula='" & tb_matricula.Text & "' ,"
                sql += "plano='" & tb_plano.Text & "' ,"
                sql += "vigencia='" & tb_vigencia.Text & "' ,"
                sql += "valor='" & tb_valor.Text & "' ,"
                sql += "nome='" & tb_nome.Text & "' ,"
                sql += "sexo='" & tb_sexo.Text & "' ,"
                sql += "rg='" & tb_rg.Text & "' ,"
                sql += "orgaoemissor='" & tb_orgaoemissor.Text & "' ,"
                sql += "estadocivil='" & tb_estadocivil.Text & "' ,"
                sql += "nascimento='" & tb_nascimento.Text & "' ,"
                sql += "genitora='" & tb_genitora.Text & "' ,"
                sql += "endereco='" & tb_endereco.Text & "' ,"
                sql += "bairro='" & tb_bairro.Text & "' ,"
                sql += "cep='" & tb_cep.Text & "' ,"
                sql += "cidade='" & tb_cidade.Text & "' ,"
                sql += "uf='" & tb_uf.Text & "' ,"
                sql += "telefone1='" & tb_telefone1.Text & "' ,"
                sql += "telefone2='" & tb_telefone2.Text & "' ,"
                sql += "email='" & tb_email.Text & "' ,"
                sql += "reparticao='" & tb_reparticao.Text & "' ,"
                sql += "cargo='" & tb_cargo.Text & "' ,"
                sql += "observacao='" & tb_observacao.Text & "' "
                sql += "where cpf='" & tb_cpf.Text & "' "

            ElseIf resultado = 0 Then
                sql = "insert into tblTitular (cpf,matricula,plano,vigencia,valor,nome,sexo,rg,orgaoemissor,estadocivil,nascimento,genitora,endereco,bairro,cep,cidade,uf,telefone1,telefone2,email,reparticao,cargo,observacao)"
                sql += "values ('" & tb_cpf.Text & "' ,"
                sql += "'" & tb_matricula.Text & "' ,"
                sql += "'" & tb_plano.Text & "' ,"
                sql += "'" & tb_vigencia.Text & "' ,"
                sql += "'" & tb_valor.Text & "' ,"
                sql += "'" & tb_nome.Text & "' ,"
                sql += "'" & tb_sexo.Text & "' ,"
                sql += "'" & tb_rg.Text & "' ,"
                sql += "'" & tb_orgaoemissor.Text & "' ,"
                sql += "'" & tb_estadocivil.Text & "' ,"
                sql += "'" & tb_nascimento.Text & "' ,"
                sql += "'" & tb_genitora.Text & "' ,"
                sql += "'" & tb_endereco.Text & "' ,"
                sql += "'" & tb_bairro.Text & "' ,"
                sql += "'" & tb_cep.Text & "' ,"
                sql += "'" & tb_cidade.Text & "' ,"
                sql += "'" & tb_uf.Text & "' ,"
                sql += "'" & tb_telefone1.Text & "' ,"
                sql += "'" & tb_telefone2.Text & "' ,"
                sql += "'" & tb_email.Text & "' ,"
                sql += "'" & tb_reparticao.Text & "' ,"
                sql += "'" & tb_cargo.Text & "' ,"
                sql += "'" & tb_observacao.Text & "' )"

            End If



            conectar.Open()
            comando = New SqlCommand(sql)
            comando.Connection = conectar
            comando.ExecuteNonQuery()


            conectar.Close()
            limpar()
            tb_cpf.Text = ""
            tb_matricula.Focus()
        End Sub

        Private Sub btn_limpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_limpar.Click
            limpar()
        End Sub

        'eventos para passar para o proximo campo pressionando ENTER
        Private Sub tb_plano_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_plano.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_vigencia.Focus()
            End If

        End Sub

        Private Sub tb_vigencia_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_valor.Focus()
            End If
        End Sub

        Private Sub tb_valor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_valor.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_nome.Focus()
            End If

        End Sub

        Private Sub tb_nome_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_nome.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_sexo.Focus()
            End If
        End Sub

        Private Sub tb_sexo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_sexo.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_rg.Focus()
            End If
        End Sub

        Private Sub tb_rg_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_rg.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_orgaoemissor.Focus()
            End If
        End Sub

        Private Sub tb_orgaoemissor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_orgaoemissor.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_cpf.Focus()
            End If
        End Sub

        Private Sub tb_cpf_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_cpf.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_estadocivil.Focus()
            End If
        End Sub
        Private Sub tb_estadocivil_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_estadocivil.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_nascimento.Focus()
            End If
        End Sub
        Private Sub tb_nascimento_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_genitora.Focus()
            End If
        End Sub

        Private Sub tb_genitora_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_genitora.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_endereco.Focus()
            End If
        End Sub

        Private Sub tb_endereco_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_endereco.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_bairro.Focus()
            End If
        End Sub

        Private Sub tb_bairro_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_bairro.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_cep.Focus()
            End If
        End Sub

        Private Sub tb_cep_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_cep.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_cidade.Focus()
            End If
        End Sub

        Private Sub tb_cidade_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_cidade.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_uf.Focus()
            End If
        End Sub

        Private Sub tb_uf_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_uf.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_telefone1.Focus()
            End If
        End Sub

        Private Sub tb_telefone1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_telefone1.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_telefone2.Focus()
            End If
        End Sub

        Private Sub tb_telefone2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_telefone2.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_email.Focus()
            End If
        End Sub

        Private Sub tb_email_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_email.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_reparticao.Focus()
            End If
        End Sub

        Private Sub tb_reparticao_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_reparticao.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_cargo.Focus()
            End If
        End Sub

        Private Sub tb_cargo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tb_cargo.KeyPress
            If AscW(e.KeyChar) = Keys.Enter Then
                tb_observacao.Focus()
            End If
        End Sub
        'fim dos eventos de teclado

        Private Sub btn_sair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_sair.Click
            frmPrincipal.Show()
            Me.Hide()
            limpar()
        End Sub

    End Class

    ---CÓDIGO DA TABELA---

    create table tblTitular

    (
    codigo int identity(1,1) not null,
    matricula varchar (13) not null,
    vigencia date,
    plano varchar (10),
    valor varchar (10),
    nome varchar (50) not null,
    sexo char (1),
    rg varchar (15) not null,
    orgaoemissor varchar (10),
    cpf char(11) primary key not null,
    estadocivil varchar (15),
    nascimento date,
    genitora varchar (50),
    endereco varchar (190),
    bairro varchar (30),
    cep varchar (8),
    cidade varchar (30),
    uf varchar (2),
    telefone1 varchar (15),
    telefone2 varchar (15),
    email varchar (30),
    reparticao varchar (25),
    cargo varchar (25),
    observacao varchar (500),

    )

    Alguém poderia me ajudar a resolver isso, por favor? Sou iniciante e estudo/aprendo sozinho.. recentemente comprei um curso que ensinava o passo a passo pra fazer um sistema de cadastro.. estou seguindo-o e alterando-o de acordo com as minhas necessidades, por isso, caso seja uma pergunta muito boba, por favor, não levem a mal... como disse, ainda tenho muito a aprender!

    sexta-feira, 15 de setembro de 2017 12:19

Respostas

  • Nicolas,

    Seu problema está em um dos campos DATE: Vigencia ou Nascimento.
    Esse erro ocorre quando você tenta colocar num campo DATE/DATETIME um valor que não é uma data válida.

    Exemplo: 

    declare @x date
    set @x = '2017-99-10'

    Isso irá retornar exatamente o mesmo erro que você tem.

    Normalmente o problema é o formato da data por conta da linguagem. Exemplo: seus campos estão ficando no formato mm-dd-yyyy e seu banco está esperando dd-mm-yyyy.

    Faça o debug do seu código e veja os valores que estão vindo nesses dois campos. Qual o formato que ele está retornando as duas datas?



    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    sexta-feira, 15 de setembro de 2017 16:05