Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ealves

Alguem me !!!!

Recommended Posts

Galera é o segiunte

Estou tentando fazer uma atualizacao de perfil de usuario mais nao estou conseguindo.

 

Tipo o cara se loga , dai ele vai pra pagina dados.asp que vai mostrar todos os seus dados e se ele quiser mudar alguma coisa é só ele alterar e clicar no botao

Atualizar Dados que vai me levar para pagina atualizar.asp ....

 

Na pagina atualizar eu fiz isso

 

Dim conn, rs, sql

Dim strNome, strEmail,strLogin, strSenha

strNome = request("nome")

strEmail = request("email")

strLogin = request("login")

strSenha = request("senha")

 

Set conn = Server.CreateObject("ADODB.Connection")

Set rs = Server.CreateObject("ADODB.Recordset")

conn.open "Driver={SQL Server};Server=localhost; Database=teste; uid=sa; Pwd=;"

 

sql = " select * from T_user where login = '" & Session("login") &"'"

set rs = conn.Execute(sql)

 

sql = "INSERT INTO T_user (nome, email, login, senha) Values('"& strNome &"', '"& strEmail &"','"& strLogin &"','"& strSenha &"')"

set rs = conn.Execute(sql)

 

IF err.number <> 0 then

response.write "<b> Dados atualizados com sucesso </b>"

end if

 

conn.close

set conn =nothing

%>

 

Esta dando esse erro

Violation of PRIMARY KEY constraint 'PK_T_user'. Cannot insert duplicate key in object 'T_user'.

 

 

Sera que é por causa do campo autoumeracao na tabela que eu nao declarei ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta tentando duplicar a sua chave primaria dentro do banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

em vez de INSERT deve ser um UPDATE a ser usado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu uso um Update nesse caso ao inves de Insert ?????Ai no caso vou ter que pegar todos os campos e alterar aqueles que foram modificados atraves do UPDATE mais nao estou sabendo fazer a instrucao....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja!!

 

sql = "INSERT INTO T_user (nome, email, login, senha) Values('"& strNome &"', '"& strEmail &"','"& strLogin &"','"& strSenha &"')"

set rs = conn.Execute(sql)

para

sql = "UPDATE T_user SET nome='"& strNome &"', email='"& strEmail &"', login='"& strLogin &"', senha='"& strSenha &"' "

set rs = conn.Execute(sql)

Editado: Muito cuidado nessa sintaxe do UPDATE. Pois, sem definir uM WHERE, você alterará TODOS OS REGISTROS DO BANCO DE DADOS! Portanto, faça um backup do seu banco de dados!

 

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

ei dark faltou o WHERE senão vai atualizar todos os registros...cara você tem que ver um campo que não pode repetir, u ma chave primaria da vida e colocar o WHERE referente a ele, pra não da pau...digamos que seja o login, ai você não permite que o cara mude ele, sua instrução fica assim...sql = "UPDATE T_user SET nome='"& strNome &"', email='"& strEmail &"', senha='"& strSenha &"' WHERE login='"& strLogin &"'"set rs = conn.Execute(sql)veja o que acontece

Compartilhar este post


Link para o post
Compartilhar em outros sites

ei dark faltou o WHERE senão vai atualizar todos os registros...cara você tem que ver um campo que não pode repetir, u ma chave primaria da vida e colocar o WHERE referente a ele, pra não da pau...digamos que seja o login, ai você não permite que o cara mude ele, sua instrução fica assim...sql = "UPDATE T_user SET nome='"& strNome &"', email='"& strEmail &"', senha='"& strSenha &"' WHERE login='"& strLogin &"'"set rs = conn.Execute(sql)veja o que acontece

Fala mario !!Brother, bem lembrado !!Sem o Where, ele atualizará o BANCO TODO !!!Entao, muito cuidado aí !Faça um backup da sua base, antes de rodar o codigo!Vou editar aquela mensagem e salientar isso !!Uma dica ao sistema..Use como chave Primaria um campo Numero.. (Ou autonumeração), pois se usar o LOGIN, pode nao funcionar, pois você permite que o login seja alterado.Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok dark, muito louvavel você dar destaque ao perigo de uma instrunção de UPDATE incompleta (Sem o WHERE), pois depois que roda, nem rezando os dados voltam se não tiver backup...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok dark, muito louvavel você dar destaque ao perigo de uma instrunção de UPDATE incompleta (Sem o WHERE), pois depois que roda, nem rezando os dados voltam se não tiver backup...

pois é..eu havia me esquecido deste detalhe, quando postei..Afinal, ele só pediu pra converter pra update, heheMas, acho que muita gente sabe o que é fazer cacaca e nao ter backup..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.