Jump to content
Whiteangel

Recuperar Pass

Recommended Posts

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()

Edited by Whiteangel

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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) ?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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... ?

Share this post


Link to post
Share on other 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ê. :(

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.