Windows Forms: Create User Registration Or Sign Up Form With SQL Server in C#
By FoxLearn 8/29/2019 9:51:56 AM 10.41K
Creating a new windows forms application project, then design a simple signup form as shown below.
Right click on your project, then add a new item->service based database
Next, You need to connect to the local database from your visual studio, then create a simple user table.
After creating the user table, you need to add a datasource to the local database. This helps you automatically create database connection strings in the app.config file.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="SignUpApp.Properties.Settings.cn" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> </startup> </configuration>
Create the AppHelper class allows you to get connection string from the app.config file. You can easily change your connection string in the app.config file.
public static class AppHelper { public static string ConnectionString => ConfigurationManager.ConnectionStrings["SignUpApp.Properties.Settings.cn"].ConnectionString; }
Creating a User class allows you to map data between User object and User table in your database.
public class User { public string UserName { get; set; } public string Password { get; set; } public string Email { get; set; } public string FullName { get; set; } public string Address { get; set; } }
Defining an IUserRepository interface allows you to eaily modify your code
public interface IUserRepository { Task<bool> Insert(User user); }
Creating the UserRepository class inherit from the IUserRepository interface, and don't forget to implement methods in the interface.
public class UserRepository : IUserRepository { public async Task<bool> Insert(User user) { using (IDbConnection db = new SqlConnection(AppHelper.ConnectionString)) { var result = await db.ExecuteAsync(SignUpApp.Properties.Resources.InsertUser, new { UserName = user.UserName, FullName = user.FullName, Email = user.Email, Address = user.Address, Password = user.Password }); return result > 0; } } }
We will use the UserRepository class to access to your sql database using Dapper ORM in c#. So, you need to search and install the Dapper from the Manage Nuget Packages to your project.
As you know, Dapper ORM is a high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc..
private async void btnSignUp_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtUserName.Text)) { MessageBox.Show("Please enter your username !", "Message", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtUserName.Focus(); return; } if (txtPassword.Text != txtConfirmPassword.Text) { MessageBox.Show("Password and Confirm password don't match !", "Message", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } IUserRepository repository = new UserRepository(); bool result = await repository.Insert(new User() { UserName = txtUserName.Text, Password = txtPassword.Text, Email = txtEmail.Text, FullName = txtFullName.Text, Address = txtAddress.Text }); if (result) MessageBox.Show("You have successfully signed up !", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("Error !", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); }
Open your resource section, then create an InsertUser resource name as show below.
if not exists(select username from users where username=@UserName) begin insert into users(username,password,email,fullname,address) values(@UserName,@Password,@Email,@FullName,@Address) end
VIDEO TUTORIAL