Update Record
-
Hi, I have created a change password page and think I got the Update function correct but don't know how to write the "Sub button_onclick, if page is valid portion". I would like to be able to do the following: If page is valid: hide the form and create a success message. I think it would be something like the following but I don't exactly know where to put it. frmpassword.Visible = False lblUserMessage.Text = "Your password has been changed to " & strnewpass & "." If page is not valid I would like to insert a failure message - something like "could not change password, please contact administrator" Below is the update function itself. I am very much a beginner so any specific help would be greatly appreciated. many thanks Function UpdatePass(ByVal username As String, ByVal userpass As String) As Integer Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\Inetpub\wwwr"& _ "oot\FAIBLogin\autores.mdb" Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString) Dim queryString As String = "UPDATE [authors] SET [userpass]='@newpass' WHERE (([authors].[username] = @usern"& _ "ame) AND ([authors].[userpass] = @userpass))" Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand dbCommand.CommandText = queryString dbCommand.Connection = dbConnection Dim dbParam_username As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter dbParam_username.ParameterName = "@username" dbParam_username.Value = username dbParam_username.DbType = System.Data.DbType.String dbCommand.Parameters.Add(dbParam_username) Dim dbParam_userpass As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter dbParam_userpass.ParameterName = "@userpass" dbParam_userpass.Value = userpass dbParam_userpass.DbType = System.Data.DbType.String dbCommand.Parameters.Add(dbParam_userpass) Dim rowsAffected As Integer = 0 dbConnection.Open Try rowsAffected = dbCommand.ExecuteNonQuery Finally dbConnection.Close End Try Return rowsAffected End Function
-
Hi, I have created a change password page and think I got the Update function correct but don't know how to write the "Sub button_onclick, if page is valid portion". I would like to be able to do the following: If page is valid: hide the form and create a success message. I think it would be something like the following but I don't exactly know where to put it. frmpassword.Visible = False lblUserMessage.Text = "Your password has been changed to " & strnewpass & "." If page is not valid I would like to insert a failure message - something like "could not change password, please contact administrator" Below is the update function itself. I am very much a beginner so any specific help would be greatly appreciated. many thanks Function UpdatePass(ByVal username As String, ByVal userpass As String) As Integer Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\Inetpub\wwwr"& _ "oot\FAIBLogin\autores.mdb" Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString) Dim queryString As String = "UPDATE [authors] SET [userpass]='@newpass' WHERE (([authors].[username] = @usern"& _ "ame) AND ([authors].[userpass] = @userpass))" Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand dbCommand.CommandText = queryString dbCommand.Connection = dbConnection Dim dbParam_username As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter dbParam_username.ParameterName = "@username" dbParam_username.Value = username dbParam_username.DbType = System.Data.DbType.String dbCommand.Parameters.Add(dbParam_username) Dim dbParam_userpass As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter dbParam_userpass.ParameterName = "@userpass" dbParam_userpass.Value = userpass dbParam_userpass.DbType = System.Data.DbType.String dbCommand.Parameters.Add(dbParam_userpass) Dim rowsAffected As Integer = 0 dbConnection.Open Try rowsAffected = dbCommand.ExecuteNonQuery Finally dbConnection.Close End Try Return rowsAffected End Function
+ On the design window, you can place a label control, say lblUserMessage, above the form control.The html code of the forgot password page is something like this:
...
<asp:Label ID="lblUserMessage" Runat="server"></asp:Label>
<form id="frmpassword" method="post" runat="server">
...+ Remember to declare the html form control in the code-behind:
Protected WithEvents frmpassword As System.Web.UI.HtmlControls.HtmlForm
+ In the button Click handler, you can do the update result checking:
Private Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Dim succ As Boolean = False
If (Page.IsValid) Then
Dim rs As Integer = UpdatePass(txtUsername.Text, txtPassword.Text)
If (rs > 0) Then
succ = True
End If
End IfIf (succ) Then frmpassword.Visible = False lblUserMessage.Text = "Your password has been changed to ..." Else lblUserMessage.Text = "Could not change password, please contact administrator" End If
End Sub
If you don't know how to add the handler for the Click event in VB, take a look at Creating Event Handlers on the Windows Forms Designer[^] + You can learn more about ASP.NET in MSDN as well as from the online tutorials http://www.asp.net/Tutorials/quickstart.aspx[^]
-
+ On the design window, you can place a label control, say lblUserMessage, above the form control.The html code of the forgot password page is something like this:
...
<asp:Label ID="lblUserMessage" Runat="server"></asp:Label>
<form id="frmpassword" method="post" runat="server">
...+ Remember to declare the html form control in the code-behind:
Protected WithEvents frmpassword As System.Web.UI.HtmlControls.HtmlForm
+ In the button Click handler, you can do the update result checking:
Private Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Dim succ As Boolean = False
If (Page.IsValid) Then
Dim rs As Integer = UpdatePass(txtUsername.Text, txtPassword.Text)
If (rs > 0) Then
succ = True
End If
End IfIf (succ) Then frmpassword.Visible = False lblUserMessage.Text = "Your password has been changed to ..." Else lblUserMessage.Text = "Could not change password, please contact administrator" End If
End Sub
If you don't know how to add the handler for the Click event in VB, take a look at Creating Event Handlers on the Windows Forms Designer[^] + You can learn more about ASP.NET in MSDN as well as from the online tutorials http://www.asp.net/Tutorials/quickstart.aspx[^]
-
When you refer to codebehind are you referring to a separate page? How exactly do I put this at the top of my actual aspx page? Protected WithEvents frmpassword As System.Web.UI.HtmlControls.HtmlForm thanks
Yes, this is a seperate class file. Basically, you can put your server-side code (code runs on the server) on a single web page, or seperate them in the code-behind with using the Codebehind attribute of the Page directive. Because you refer to the form control in the button Click handler that is in the code-behind, so we put that declaration inside the code-behind class as well, for example:
Public Class ForgotPassword Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
...
#End RegionProtected WithEvents frmpassword As System.Web.UI.HtmlControls.HtmlForm
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
End Sub...
End Class
If you develop your asp.net application in VisualStudio, you are recommended to use the code-behind model as it makes your code much clearer and you can seperate layout from code. For more information, see Web Forms Code Model[^]