asd29 Posted April 9, 2012 at 11:20 AM Report #448184 Posted April 9, 2012 at 11:20 AM 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?
anolsi Posted April 9, 2012 at 11:23 AM Report #448185 Posted April 9, 2012 at 11:23 AM 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!
asd29 Posted April 9, 2012 at 11:30 AM Author Report #448187 Posted April 9, 2012 at 11:30 AM desde já agradeço pela rápida resposta 😉 VBA.
anolsi Posted April 9, 2012 at 12:18 PM Report #448191 Posted April 9, 2012 at 12:18 PM 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!
asd29 Posted April 9, 2012 at 12:56 PM Author Report #448196 Posted April 9, 2012 at 12:56 PM 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.
asd29 Posted April 9, 2012 at 01:26 PM Author Report #448199 Posted April 9, 2012 at 01:26 PM Este código esta a dar 😉
Sr Inovação Posted April 9, 2012 at 01:40 PM Report #448202 Posted April 9, 2012 at 01:40 PM 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
asd29 Posted April 9, 2012 at 02:03 PM Author Report #448205 Posted April 9, 2012 at 02:03 PM o codigo está a dar na perfeição, mas obrigado pela resposta 😉 tenho é uma dúvida onde me poderá ajudar: http://www.portugal-a-programar.pt/index.php?showtopic=52069
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now