Look below at this assignment, I have progressed, but I feel like I have not completed things yet. Please spot mistakes, complete/add on my code to make it better and acquaint the requirements in the assignment below:
Scenario
 You are contracted to develop a home appliance rental application for a local startup company. The renting business company provides affordable rental services for people looking to hire home electrical appliances from small to large for a minimum period starting from ONE (1) month. Examples of types of appliances are TV, fridge, freezer, washing machine, dryer, dishwasher, microwave, etc.

The application should have TWO (2) types of users which are administrator and customer. An administrator can view, add, edit, and delete an item. A customer can create an account with a username and password. The usernames can only contain letters and numbers. The password must be of length between EIGHT (8) and SIXTEEN (16) characters and contain at least ONE (1) lowercase and ONE (1) uppercase letter. A customer can search, view, and order an item after they successfully log in the application.

Your program should include the following requirements. Functional Requirements:
 ● Customers can register.
 ● Customers can search appliances by type and view sorted appliances by energy consumption (see the table below for some common appliances, or research for your chosen appliances) or weekly cost. They can also add appliance items to a shopping cart. 
● Calculation of the total price.
 ● Administrators can add, edit and delete appliance items. 
● Log in page for customers and administrators. Appropriately handle the situation when a reasonable number of failed login attempts occur.

TABLE: 
Appliance	Power Usage	Typical Usage	Estimated annual running costs
LCD TV	0.21kWh per hour	6 hours a day (power on)	£130
Fridge Freezer (A spec)	408kWh per year	24 hours a day	£115
Tumble Dryer	2.50kWh per cycle	148 uses a year	£105
Electric hob	0.71kWh per use	424 uses a year	£85
Electric oven	1.56kWh per use	135 uses per year	£60
Dishwasher	1.44kWh per use (at 65⁰C)	135 uses per year	£55
Kettle	0.11kWh per use based on heating 1 litre of water		1,542 uses per year	£48



Non-functional Requirements:
● Provide FIVE (5) types of appliances of your choice. 
● Each type has TEN (10) appliances. 
● Each appliance is rented for a monthly fee. 
● Each appliance should have an appropriate description, such as brand, model, dimensions, colour, energy consumption, monthly fee etc. 
● All FIVE (5) types of appliances should have different minimum rental contract periods starting from ONE (1) month.
 ● The application users are customers and administrators. 
● Provide appropriate errors and help messages, and guidance for customer

TASK
a) You need to write code (written in C#) which fulfils all the requirements as outlined above. 
b) The quality of your program will be assessed in terms of program structure, OOP principles in-cluding encapsulation, algorithms using appropriate control structures (loops and selections), and readability including appropriate comments



-----------------------------------------------------------------------------------------------------------------------------------
NOTE: USERS AND APPLIANCES ARE ALL STORED IN ACESS DATABASE WHICH IS CONNECTED TO MY PROJECT

Form1.cs(Login page):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.Remoting.Lifetime;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;

namespace ApplianceRental
{
    public partial class Form1 : Form
    {
        

        public Form1()
        {
            InitializeComponent();
            OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataAdapter da = new OleDbDataAdapter();
            
        }
        //connects to database
        OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
        OleDbCommand cmd = new OleDbCommand();
        OleDbDataAdapter da = new OleDbDataAdapter();
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Validate username and password 
            string username = textBox1.Text;
            string password = textBox2.Text;

            // Check user type (Administrator or Customer) and redirect ac-cordingly
            if (username == "Admin123" && password == "stcmalta")
            {
                // Open the Admin Dashboard form
                AdminDashboardForm adminDashboardForm = new AdminDashboard-Form();
                adminDashboardForm.Show();
                this.Hide();
            }
            else
            {
                con.Open();
                string login = "SELECT * FROM tbl_users WHERE username = '" + textBox1.Text + "' and password= '" + textBox2.Text + "'";
                cmd = new OleDbCommand(login, con);
                OleDbDataReader dr = cmd.ExecuteReader();
                if (dr.Read() == true)
                {
                    new CustomerDashboardForm().Show();
                    this.Hide();
                }
                
                else
                {
                    // Show error message for invalid username or password.
                    MessageBox.Show("Invalid username or password! Please try again.");
                }
                con.Close();
            }
        }





            private void button2_Click(object sender, EventArgs e)
            {
            new RegistrationForm().Show();
                this.Hide();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            //snippet to unhide password if ticked
            if (checkBox1.Checked)
            {
                textBox2.PasswordChar = '\0';
            }
            else
            {
                textBox2.PasswordChar = '*';
            }
        }
    }
}

RegistrationForm.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
using static Sys-tem.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using System.Xml.Linq;

namespace ApplianceRental
{
    public partial class RegistrationForm : Form
    {
        

        public RegistrationForm() // Add Form1 loginForm as a parameter
        {
            InitializeComponent();


        }
        OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
        OleDbCommand cmd = new OleDbCommand();
        OleDbDataAdapter da = new OleDbDataAdapter();
        private void button1_Click(object sender, EventArgs e)
        {
            // Validate input fields
            if (string.IsNullOrEmpty(textBox1.Text))
            {
                MessageBox.Show("Please enter a username.");
                return;
            }

            if (string.IsNullOrEmpty(textBox2.Text))
            {
                MessageBox.Show("Please enter a password.");
                return;
            }

            if (textBox2.Text != textBox3.Text)
            {
                MessageBox.Show("Passwords do not match.");
                return;
            }

            if (string.IsNullOrEmpty(textBox4.Text))
            {
                MessageBox.Show("Please enter your full name.");
                return;
            }

            if (string.IsNullOrEmpty(textBox5.Text))
            {
                MessageBox.Show("Please enter your email address.");
                return;
            }

            if (string.IsNullOrEmpty(textBox6.Text))
            {
                MessageBox.Show("Please enter your address.");
                return;
            }

            con.Open();
            string register = "INSERT INTO tbl_users VALUES ('" + text-Box1.Text + "','" + textBox2.Text + "', '" + textBox4.Text + "', '" + text-Box5.Text + "', '" + textBox6.Text + "')";
            cmd = new OleDbCommand(register, con);
            cmd.ExecuteNonQuery();
            con.Close();
            // Successful registration, do something here
            MessageBox.Show("Registration successful!");

            //emptying the fields
            textBox1.Text = "";
            textBox2.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            textBox6.Text = "";
            textBox3.Text = "";
            
            this.Hide();
            new Form1().Show();






        }

    }
}


CustomerDashboardForm.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.Remoting.Lifetime;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;

namespace ApplianceRental
{
    public partial class Form1 : Form
    {
        

        public Form1()
        {
            InitializeComponent();
            OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataAdapter da = new OleDbDataAdapter();
            
        }
        //connects to database
        OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
        OleDbCommand cmd = new OleDbCommand();
        OleDbDataAdapter da = new OleDbDataAdapter();
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Validate username and password 
            string username = textBox1.Text;
            string password = textBox2.Text;

            // Check user type (Administrator or Customer) and redirect ac-cordingly
            if (username == "Admin123" && password == "stcmalta")
            {
                // Open the Admin Dashboard form
                AdminDashboardForm adminDashboardForm = new AdminDashboard-Form();
                adminDashboardForm.Show();
                this.Hide();
            }
            else
            {
                con.Open();
                string login = "SELECT * FROM tbl_users WHERE username = '" + textBox1.Text + "' and password= '" + textBox2.Text + "'";
                cmd = new OleDbCommand(login, con);
                OleDbDataReader dr = cmd.ExecuteReader();
                if (dr.Read() == true)
                {
                    new CustomerDashboardForm().Show();
                    this.Hide();
                }
                
                else
                {
                    // Show error message for invalid username or password.
                    MessageBox.Show("Invalid username or password! Please try again.");
                }
                con.Close();
            }
        }





            private void button2_Click(object sender, EventArgs e)
            {
            new RegistrationForm().Show();
                this.Hide();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            //snippet to unhide password if ticked
            if (checkBox1.Checked)
            {
                textBox2.PasswordChar = '\0';
            }
            else
            {
                textBox2.PasswordChar = '*';
            }
        }
    }
}

AdminDashboardForm.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ApplianceRental
{
    public partial class AdminDashboardForm : Form
    {
        public AdminDashboardForm()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellContentClick(object sender, Data-GridViewCellEventArgs e)
        {

        }

        private void Add_Click(object sender, EventArgs e)
        {

        }

        private void Edit_Click(object sender, EventArgs e)
        {

        }

        private void Delete_Click(object sender, EventArgs e)
        {
\
        }

        private void AdminDashboardForm_Load(object sender, EventArgs e)
        {

        }
    }
}