Download Source Code : 1388_SignupPage.zip
Signup or register is used to create a user account in websites. You can use CreateUserWizard or you can define your own layout and logic to create a signup or register page.
I will not use CreateUserWizard in this article to create a signup or register page for new user registration. I will use TextBox and different validation controls to create a simple signup or register page. I will use RequiredFieldValidator for all entries and RegularExpressionValidator and CompareValidator for email and confirm password respectively. I will also insert values in database and check duplicate entries in database table on the basis of email. You can check user name or all values to prevent double entry. I have created a SQL Server database (SampleApplicationDatabase) and a table (Account) for this article. Table (Account) has six columns (AccountID, FirstName, LastName, Email, Password, ConfirmPassword and CreateDate). AccountID is primary key and set to auto increment. I have also written two stored procedures in database and two functions to check double entry and insert values in database.
Let’s see what we have to do to create a signup or register page. You can download source code.
- Open Visual Studio 2010
- File > New > Web Site
- Visual C# or Visual Basic > ASP.NET Empty Web Site > Click Ok
- Website > Add New Item > Web Form > Click Add
- Add code below in your Web Form<table><tr><td colspan="3"><span style="font-size: 14pt">Please provide following information and Signup</span></td></tr><tr><td style="width: 100px"><asp:Label ID="lblFirstName" runat="server" Text="First Name:" Width="80px"></asp:Label></td><td style="width: 116px"><asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox></td><td style="width: 100px"><asp:RequiredFieldValidator ID="FirstNameRequiredFieldValidator" runat="server" ControlToValidate="txtFirstName"Display="Dynamic" ErrorMessage="First Name Required" SetFocusOnError="True">*</asp:RequiredFieldValidator></td></tr><tr><td style="width: 100px"><asp:Label ID="lblLastName" runat="server" Text="Last Name:" Width="80px"></asp:Label></td><td style="width: 116px"><asp:TextBox ID="txtLastName" runat="server" ></asp:TextBox></td><td style="width: 100px"><asp:RequiredFieldValidator ID="LastNameRequiredFieldValidator" runat="server" ControlToValidate="txtLastName"Display="Dynamic" ErrorMessage="Last Name Required" SetFocusOnError="True">*</asp:RequiredFieldValidator></td></tr><tr><td style="width: 100px"><asp:Label ID="lblEmail" runat="server" Text="Email:" Width="45px"></asp:Label></td><td style="width: 116px"><asp:TextBox ID="txtEmail" runat="server" ></asp:TextBox></td><td style="width: 100px"><asp:RequiredFieldValidator ID="EmailRequiredFieldValidator" runat="server" ControlToValidate="txtEmail"Display="Dynamic" ErrorMessage="Email Required" SetFocusOnError="True">*</asp:RequiredFieldValidator><asp:RegularExpressionValidator ID="EmailRegularExpressionValidator" runat="server"ControlToValidate="txtEmail" Display="Dynamic" ErrorMessage="Provide valid email address"SetFocusOnError="True" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">*</asp:RegularExpressionValidator></td></tr><tr><td style="width: 100px; height: 26px;"><asp:Label ID="lblPassword" runat="server" Text="Password:" Width="71px"></asp:Label></td><td style="width: 116px; height: 26px;"><asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox></td><td style="width: 100px; height: 26px"><asp:RequiredFieldValidator ID="PasswordRequiredFieldValidator" runat="server" ControlToValidate="txtPassword"Display="Dynamic" ErrorMessage="Password Required" SetFocusOnError="True">*</asp:RequiredFieldValidator></td></tr><tr><td style="width: 100px; height: 26px;"><asp:Label ID="lblConfirmPassword" runat="server" Text="Confirm Password:" Width="128px"></asp:Label></td><td style="width: 116px; height: 26px;"><asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox></td><td style="width: 100px; height: 26px"><asp:RequiredFieldValidator ID="ConfirmPasswordRequiredFieldValidator" runat="server"ControlToValidate="txtConfirmPassword" Display="Dynamic" ErrorMessage="Confirm Password Required"SetFocusOnError="True">*</asp:RequiredFieldValidator><asp:CompareValidator ID="ConfirmPasswordCompareValidator" runat="server" ControlToCompare="txtPassword"ControlToValidate="txtConfirmPassword" Display="Dynamic" ErrorMessage="Password missmatch"SetFocusOnError="True">*</asp:CompareValidator></td></tr><tr><td style="width: 100px; height: 26px;"></td><td style="width: 116px; height: 26px;"><asp:Button ID="btnSignup" runat="server" Text="Signup"onclick="btnSignup_Click" onprerender="btnSignup_PreRender" /></td><td style="width: 100px; height: 26px"></td></tr><tr><td colspan="3" style="height: 26px"><asp:ValidationSummary ID="SigupValidationSummary" runat="server" /><asp:Label ID="lblMessage" runat="server"></asp:Label></td></tr></table>Add TextBox controls for first name, last name, email, password and confirm password values. You can add more TextBox controls if you want more information from user. Add RequiredFieldValidor for all values or for those values which you need to add in database. Add a RegularExpressionValidator for email and a CompareValidator for confirm password or re-password input field. Set ControlTovalidate property for all TextBox controls accordingly. You can also add ValidationSummary control to show all validation controls.
- Write below stored procedures to insert values into Account table and to check valid entry of email.Stored procedure to insert values into tableCREATE PROCEDURE dbo.AddAccount(@FirstName nvarchar(50),@LastName nvarchar(50),@Email varchar(100),@Password nvarchar(50),@CreateDate datetime)ASINSERT Account(FirstName,LastName,Email,Password,CreateDate)VALUES(@FirstName,@LastName,@Email,@Password,@CreateDate)RETURNStored Procedure to check valid or duplicate entry of emailCREATE PROCEDURE dbo.IsValidUser(@Email varchar(100),@IsValid bit OUTPUT)ASBEGINDECLARE @RecordCount INTSELECT @RecordCount = Count(*) FROM Account WHERE Email = @EmailIF @RecordCount <= 0BEGINSET @IsValid = 1ENDELSEBEGINSET @IsValid = 0ENDENDAddAccount stored procedure will insert values into Account table. IsValidUser stored procedure count number of accounts for entered email. If there is any account created for this email, the count will be 1. This stored procedure will check if count is equal to zero then it will return true otherwise it will return false.
- Open code behind file and include following namespace.C#using System.Data;using System.Data.SqlClient;VB.NETImports System.DataImports System.Data.SqlClient
- Write two functions in code behind file to insert values into database and to check valid or duplicate email.C#public bool IsValidUser(string email){bool result;string connstring = "Data Source=Local;Initial Catalog=SampleApplicationDatabase;Integrated Security=True";SqlConnection conn = new SqlConnection(connstring);SqlCommand cmd = new SqlCommand("IsValidUser", conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add("@Email", SqlDbType.VarChar, 100).Value = email;cmd.Parameters.Add("@IsValid", SqlDbType.Bit).Value = DBNull.Value;cmd.Parameters["@IsValid"].Direction = ParameterDirection.Output;try{conn.Open();cmd.ExecuteNonQuery();result = (bool)cmd.Parameters["@IsValid"].Value;}catch (Exception ex){return false;}finally{conn.Close();}return result;}public bool AddAccount(string firstName, string lastName, string email, string password, DateTime createDate){bool result;string connstring = "Data Source=Local;Initial Catalog=SampleApplicationDatabase;Integrated Security=True";SqlConnection conn = new SqlConnection(connstring);SqlCommand cmd = new SqlCommand("AddAccount", conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 50).Value = firstName;cmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 50).Value = lastName;cmd.Parameters.Add("@Email", SqlDbType.VarChar, 100).Value = email;cmd.Parameters.Add("@Password", SqlDbType.NVarChar, 50).Value = password;cmd.Parameters.Add("@CreateDate", SqlDbType.DateTime).Value = createDate;try{conn.Open();cmd.ExecuteNonQuery();result = true;}catch (Exception ex){result = false;}finally{conn.Close();}return result;}VB.NETPublic Function IsValidUser(ByVal email As String) As BooleanDim result As BooleanDim connstring As String = "Data Source=Local;Initial Catalog=SampleApplicationDatabase;Integrated Security=True"Dim conn As New SqlConnection(connstring)Dim cmd As New SqlCommand("IsValidUser", conn)cmd.CommandType = CommandType.StoredProcedurecmd.Parameters.Add("@Email", SqlDbType.VarChar, 100).Value = emailcmd.Parameters.Add("@IsValid", SqlDbType.Bit).Value = DBNull.Valuecmd.Parameters("@IsValid").Direction = ParameterDirection.OutputTryconn.Open()cmd.ExecuteNonQuery()result = CBool(cmd.Parameters("@IsValid").Value)Catch ex As ExceptionReturn FalseFinallyconn.Close()End TryReturn resultEnd FunctionPublic Function AddAccount(ByVal firstName As String, ByVal lastName As String, ByVal email As String, ByVal password As String, ByVal createDate As DateTime) As BooleanDim result As BooleanDim connstring As String = "Data Source=Local;Initial Catalog=SampleApplicationDatabase;Integrated Security=True"Dim conn As New SqlConnection(connstring)Dim cmd As New SqlCommand("AddAccount", conn)cmd.CommandType = CommandType.StoredProcedurecmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 50).Value = firstNamecmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 50).Value = lastNamecmd.Parameters.Add("@Email", SqlDbType.VarChar, 100).Value = emailcmd.Parameters.Add("@Password", SqlDbType.NVarChar, 50).Value = passwordcmd.Parameters.Add("@CreateDate", SqlDbType.DateTime).Value = createDateTryconn.Open()cmd.ExecuteNonQuery()result = TrueCatch ex As Exceptionresult = FalseFinallyconn.Close()End TryReturn resultEnd FunctionIn IsValidUser() function, set connection to your server and call the IsValidUser stored procedure. Add parameters and their values and set the direction for output parameter. Call ExecuteNonQuery() method and get the true/false value in Boolean variable.AddAccount() function is simple. Set connection to your server and call the AddAccount stored procedure. Add parameters and their values to SqlCommand object. call ExecuteNonQuery() method and set value to true in try block and false in catch block.
- Write code below in button click eventC#
protected void btnSignup_Click(object sender, EventArgs e){if (IsValidUser(txtEmail.Text) == true){bool result = AddAccount(txtFirstName.Text, txtLastName.Text, txtEmail.Text, txtPassword.Text, DateTime.Now);if (result == true){lblMessage.Text = "Account created successfully";}else{lblMessage.Text = "Cannot create account, please try again later.";}}else{lblMessage.Text = "Email already exist. Please use another email address";}}VB.NET
Protected Sub btnSignup_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSignup.ClickIf IsValidUser(txtEmail.Text) = True ThenDim result As Boolean = AddAccount(txtFirstName.Text, txtLastName.Text, txtEmail.Text, txtPassword.Text, DateTime.Now)If result = True ThenlblMessage.Text = "Account created successfully"ElselblMessage.Text = "Cannot create account, please try again later."End IfElselblMessage.Text = "Email already exist. Please use another email address"End IfEnd SubFirst call IsValidUser() function and get the Boolean value. If it is not true, simply display the message and if it is true then call the AddAccount() function by providing all parameter values to it. - Signup page is ready. Press F5, enter values and click signup button.
No comments:
Post a Comment