Usuário com melhor resposta
Tipo De Dados Imcompatível Na Expressão De Critério

Pergunta
-
Estou com novo problema fiz cad de funcionarios apareceu o erro segue o codigo :
Tipo De Dados Imcompatível Na Expressão De Critério
Imports System.Data
Imports System.Data.OleDb
Public Class Cadastrar_Funcionario
Private Sub Cadastrar_Funcionario_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub PGravaDadosFuncionarios() ' essa é a parte qeue ta dando erro
Using con As OleDbConnection = geetConectionCadClientesFotos()
Try
con.Open()
Dim sql As String = "INSERT INTO usuarios (nome, email, senha, empresa, Celular, Telefone, CEP, Endereco, bairro, cidade, estado, Salario, [Horario de Chegada], [Horario de Almoco], [horario de Saida], [Carga Horaria], [Cpf cnpj], [Data Nascimento], [Nivel De Permissao]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
cmd.Parameters.Add(New OleDb.OleDbParameter("@nome", txtNome.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@email", txtEmail.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@senha", txtSenha.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@Nivel De Permissao", txtNivelDePermissao.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@empresa", txtEmpresa.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@Celular", txtCelular.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@Telefone", txtTelefone.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@CEP", txtCep.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@Endereco", txtEndereco.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@bairro", txtBairro.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@cidade", txtCidade.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@estado", txtEstado.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@Salario", txtSalario.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Horario de Chegada]", txtHorarioDeChegada.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Horario de Almoco]", txtAlmoco.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[horario de Saida]", txtHorario_de_Saida.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Cpf cnpj]", txtCPF.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Data Nascimento]", txtDataNascimento.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Carga Horaria]", txtCargaHoraria.Text))
cmd.ExecuteNonQuery()
MsgBox(" O Administrador Foi Salvo com Sucesso!")
txtEmail.Text = ""
txtSenha.Text = ""
txtNivelDePermissao.Text = ""
txtNome.Text = ""
txtNome.Enabled = False
txtEmail.Enabled = False
txtSenha.Enabled = False
Cadastrar.Enabled = False
Novo.Enabled = True
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
End Try
End Using
End Sub
Private Sub Cadastrar_Click(sender As System.Object, e As System.EventArgs) Handles Cadastrar.Click
PGravaDadosFuncionarios()
End Sub
End Class
XD
- Editado jose_down terça-feira, 7 de março de 2017 18:32
Respostas
-
Eu te mandei este exemplo!
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Data Nascimento]", DateTime.Parse(txtDataNascimento.Text)))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[VALORDECIMAL]", Decimal.Parse(txtDecimal.Text)))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[VALORINT]", Integer.Parse(txtInteiro.Text)))
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
- Marcado como Resposta jose_down terça-feira, 7 de março de 2017 19:16
Todas as Respostas
-
Olá jose_down
Você precisa verificar se os parametros que você esta passando estão no mesmo formato que consta no banco de dados!
Por exemplo!
Data Nascimento que tipo é no banco?
Se for do tipo DateTime você precisa conversar o seu parametro para DateTime!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Tenta desta forma!
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Data Nascimento]", DateTime.Parse(txtDataNascimento.Text)))
Se você tiver outros campos de outros tipos também precisa fazer o mesmo!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Você precisa converter para Double ou Decimal, depende a forma que esta no banco de dados!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Eu te mandei este exemplo!
cmd.Parameters.Add(New OleDb.OleDbParameter("@[Data Nascimento]", DateTime.Parse(txtDataNascimento.Text)))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[VALORDECIMAL]", Decimal.Parse(txtDecimal.Text)))
cmd.Parameters.Add(New OleDb.OleDbParameter("@[VALORINT]", Integer.Parse(txtInteiro.Text)))
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
- Marcado como Resposta jose_down terça-feira, 7 de março de 2017 19:16