Ir para o conteúdo
Juca

[Resolvido] Resolvido - Erro no update

Mensagens Recomendadas

Juca    0
Juca

Boa tarde a todos,

Sou iniciante e estou desenvolvendo um sistema. A minha tabela esta em sql e tenho um campo com o nome usu_DataCadastro do tipo date. Quando faço o update, aparece a mensagem "Conversion failed when converting date and/or time from character string". Abaixo esta meu comando update.

cmd.CommandText = "Update tbl_Usuario Set usu_NomeCompleto = '" & txtUsuNomeCompleto.Text & "' , usu_CPF = '" & txtUsuCPF.Text & "' , usu_Cargo = '" & cmbUsuCargo.Text & "' , usu_Email = '" & txtUsuEmail.Text &_
"' , usu_Usuario = '" & txtUsuUsuario.Text & "' , usu_Nivel = '" & cmbUsuNivel.Text & "' , usu_SenhaAtual = '" & txtUsuSenhaAtual.Text & "' , usu_SenhaNova = '" & txtUsuSenhaNova.Text & _
"' , usu_SenhaConfirma = '" & txtUsuSenhaConfirma.Text & "' , usu_DataCadastro = '" & txtUsuDataCadastro.Text & "' , usu_Situacao = '" & cmbUsuSituacao.Text & "' Where usu_Id = " & ausuId(dgvUsuarios.CurrentRow.Index + 1)

Obrigado.

Editado por Juca
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
FreiNando    22
FreiNando

O ideal será usar parâmetros, principalmente por causa dos campos de texto:

	cmd.CommandText = "Update tbl_Usuario Set usu_NomeCompleto =?, usu_CPF =?, usu_Cargo =?" _
		& ", usu_Email =?, usu_Usuario =?, usu_Nivel =?, usu_SenhaAtual =?, usu_SenhaNova =?" _
		& ", usu_SenhaConfirma =?, usu_DataCadastro =?, usu_Situacao =? Where usu_Id =?"
	cmd.Parameters.Add("@P1", OleDbType.VarChar).Value = txtUsuNomeCompleto.Text
	cmd.Parameters.Add("@P2", OleDbType.VarChar).Value = txtUsuCPF.Text
	cmd.Parameters.Add("@P3", OleDbType.VarChar).Value = cmbUsuCargo.Text
	cmd.Parameters.Add("@P4", OleDbType.VarChar).Value = txtUsuEmail.Text
	cmd.Parameters.Add("@P5", OleDbType.VarChar).Value = txtUsuUsuario.Text
	cmd.Parameters.Add("@P6", OleDbType.VarChar).Value = cmbUsuNivel.Text
	cmd.Parameters.Add("@P7", OleDbType.VarChar).Value = txtUsuSenhaAtual.Text
	cmd.Parameters.Add("@P8", OleDbType.VarChar).Value = txtUsuSenhaNova.Text
	cmd.Parameters.Add("@P9", OleDbType.VarChar).Value = txtUsuSenhaConfirma.Text
	'pode verificar se é uma data válida
	If IsDate(txtUsuDataCadastro.Text) Then
		cmd.Parameters.Add("@P10", OleDbType.Date).Value = CDate(txtUsuDataCadastro.Text)
	Else
		cmd.Parameters.Add("@P10", OleDbType.Date).Value = DBNull.Value
	End If
	cmd.Parameters.Add("@P11", OleDbType.VarChar).Value = cmbUsuSituacao.Text
	cmd.Parameters.Add("@P12", OleDbType.Integer).Value = ausuId(dgvUsuarios.CurrentRow.Index + 1)
	cmd.ExecuteNonQuery()

Se não usar parâmetros, dá erro se o utilizador colocar num dos texto uma plica ('), para não falar de Injeção SQL.

Editado por FreiNando

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.