Jump to content
Sign in to follow this  
asd29

Falha ao Converter o valor do parâmetro de string para DataTime

Recommended Posts

asd29

Boas!

estou a desenvolver um programa para a gestão de um complexo desportivo e tudo corria bem até tentar guardar dados na BD (Access) .

dá-me o seguinte erro: Falha ao Converter o valor do parâmetro de string para DataTime.

Alguém me poderia ajudar?

Share this post


Link to post
Share on other sites
anolsi

Mas estás a trabalhar em VBA, ou VB6 com acesso a Access?


"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Share this post


Link to post
Share on other sites
anolsi

Sem ver nada do código, inclusive onde o erro acontece é um bocado difícil de ajudar. Mas uma coisa não deve haver dúvida, a tua string que contém a data não deve estar num formato válido ao ser convertida, agora o porquê assim não o sei dizer.


"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Share this post


Link to post
Share on other sites
asd29

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\BD_PAP.mdb")
        Dim query As String = "INSERT INTO Professor([nprofessor],[Nome], [bI],[Datnasc],[Morada],[Contacto], [codmodalidade], [turma]) VALUES (@nprofessor,@Nome,@BI,@Datnasc,@Morada,@Contacto,@codmodalidade,@turma)"

        Dim command As New OleDbCommand(query, ConnectionString)

        command.Parameters.Add("@nprofessor", OleDbType.VarChar).Value = TextBox1.Text
        command.Parameters.Add("@Nome", OleDbType.VarChar).Value = TextBox2.Text
        command.Parameters.Add("@BI", OleDbType.VarChar).Value = TextBox3.Text
        command.Parameters.Add("@Datnasc", OleDbType.Date).Value = TextBox4.Text
        command.Parameters.Add("@Morada", OleDbType.VarChar).Value = TextBox5.Text
        command.Parameters.Add("@Contacto", OleDbType.VarChar).Value = TextBox6.Text
        command.Parameters.Add("@codmodalidade", OleDbType.VarChar).Value = TextBox7.Text
        command.Parameters.Add("@turma", OleDbType.VarChar).Value = TextBox8.Text

        ConnectionString.Open()

        Dim x As Integer = command.ExecuteNonQuery()

        If x < 1 Then
            MessageBox.Show("Erro ao inserir", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            MessageBox.Show("Registo inserido com sucesso!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If

        ConnectionString.Close()
        command = Nothing
    End Sub

o codigo que estou a usar e este.

Share this post


Link to post
Share on other sites
Sr Inovação

Nos parametros do comando a data de nascimento que é do tipo Date supostamente, porque que estas a ir buscar a data inserida a uma textbox e nao a um datapicker ?

command.Parameters.Add("@Datnasc", OleDbType.Date).Value = TextBox4.Text

Se quiseres continuar com a textbox tens que formatar o texto para formato de data que pretendes

txtMyDate.Text = MyDate.ToString("mm/dd/yyyy")

tenta isto

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.