Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Whiteangel

Recuperar Pass

Mensagens Recomendadas

Whiteangel

Boas pessoal,

Estou a dessenvolver um projeto, e tenho um form para o utilizador recuperar as sua password, quando o utilizador clica em recuperar password, aparece me um form com uma textbox para o nome, uma para a password nova e outra para confirmar a password e tenho um botão, no código que eu estou a fazer ele está certo, não dá erros, mas ao alterar a password ele não está altera-la na base de dados, podiam ajudar-me a ver o que está de errado no codigo?

Dim cs As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Acer\Documents\Visual Studio 2010\Projects\PAP\BaseDados\SPdados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
	Dim con As New SqlConnection(cs)
	con.Open()
	Dim nome As String
	nome = Txtnome.Text
	Dim sql As String = "Select * From Login " & "Where Nome= '" & nome & "'"
	Dim sqlcom As New SqlCommand(sql, con)
	Dim dr As SqlDataReader = sqlcom.ExecuteReader()
	Dim info As String = ""

	While (dr.Read())
		nome = dr.Item(0)
		info = info & nome & vbCrLf
	End While

	If info = "" Then
		MsgBox(" Utilizador não encontrado. Insira um utilizador válido! ", MsgBoxStyle.Critical, "Mensagem de Erro")

		Txtnome.ResetText()
		Txtpass.ResetText()
		TxtConfPassword.ResetText()

	ElseIf Txtpass.Text = TxtConfPassword.Text Then
		Dim info1 As String = ""

		Dim Password As String
		Dim Username As String
		Password = Txtpass.Text
		Username = Txtnome.Text
		Dim Sql1 As String = " Update Login " & " set Password ='" & Password & "' where Nome = '" & Username & "'"
		Dim sqlcom1 As New SqlCommand(Sql1, con)
		Dim nr As Integer
		Try
			nr = sqlcom1.ExecuteNonQuery()
		Catch exc As Exception
               MsgBox(" Erro:" & exc.Message)

		End Try

           MsgBox(" Password recuperada com sucesso!", MsgBoxStyle.Information, "Mensagem de Confirmação")
			Login.Show()
		Me.Hide()

	Else
		MsgBox("Password incorrecta", MsgBoxStyle.Critical, "Mensagem de Erro")

	End If

	con.Close()

Editado por Whiteangel

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Boas,

confirmaste na base de dados que a password não está a ficar lá?

Executaste a aplicação linha a linha para ver se está a entrar onde é suposto?

Estás a mostrar a mensagem de password recuperada com sucesso só na parte do catch, ou seja, só mostra em caso de erro. É mesmo isso que pretendes?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Whiteangel

Boas,

confirmaste na base de dados que a password não está a ficar lá?

Executaste a aplicação linha a linha para ver se está a entrar onde é suposto?

Estás a mostrar a mensagem de password recuperada com sucesso só na parte do catch, ou seja, só mostra em caso de erro. É mesmo isso que pretendes?

Ao clicar no botão diz que a pass foi recuperada, e volto para o form do login, e faço o login com a nova pass e da me incorreto, vou ver à base de dados e ele não esta altera-la na base de dados

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Repara bem no código. Essa mensagem que te referes só é mostrada em caso de erro.

Porque é que comentaste a linha ' MsgBox(" Erro:" & exc.Message) ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Whiteangel

Repara bem no código. Essa mensagem que te referes só é mostrada em caso de erro.

Porque é que comentaste a linha ' MsgBox(" Err a o:" & exc.Message) ?

A linha ' MsgBox(" Erro:" & exc.Message) , tanto pode estar em comentário como não, a minha questão é que esse código esta todo a funcionar (sem erros), mas não esta alterar a password na base de dados.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Vou voltar a repetir:

o código que mostra a mensagem de password recuperada com sucesso só é apresentado em caso de erro (está dentro do catch).

Se estás a visualizar esta mensagem então é porque está a dar um erro

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Whiteangel

Vou voltar a repetir:

o código que mostra a mensagem de password recuperada com sucesso só é apresentado em caso de erro (está dentro do catch).

Se estás a visualizar esta mensagem então é porque está a dar um erro

Ah sim estava dentro do cath porque eu andei a fazer uns teste, mas eu ao colocar fora do cath , ele diz-me (como mensagem de erro) : que ja existe um dataread associado ao command e que tem de ser fechado, e eu não estou a conseguir resolver esse problema

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
He B TeMy

Posta o erro completo em inglês, mas se já existe alguma coisa, deves ter que fechar alguma anterior conexão antes de fazeres isso... ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Whiteangel

Depois do "End While", fecha o reader (dr.Close())

Mesmo que eu feche "dr.Close()", ele continua a não guardar a pass nova na base de dados

Posta o erro completo em inglês, mas se já existe alguma coisa, deves ter que fechar alguma anterior conexão antes de fazeres isso... ?

sim deverei ter que fechar, mas não vejo o quê. :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Whiteangel

Faz debug e mostra o conteúdo da variavel Sql1 antes de executares o query

Muito obrigada pela ajuda, acabei de conseguir resolver o problema :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
He B TeMy

Muito obrigada pela ajuda, acabei de conseguir resolver o problema :D

Podias dizer qual era, para uma pessoa que praticamente não viu o teu código para não ficar na ignorância... k

Partilhar esta mensagem


Ligação 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.