updated

Problem Statement

Problem Statement

Code Implementation

Employee Payroll System

Login.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Login.aspx.vb" Inherits="Login" %>
<!DOCTYPE html>
<html>
<head><title>Login</title><link rel="stylesheet" href="styles.css" /></head>
<body>
<form runat="server">
    <div style="text-align:center;">
        <h2>Login to Employee Payroll System</h2>
        <asp:TextBox ID="txtUsername" runat="server" Placeholder="Username" /><br /><br />
        <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Placeholder="Password" /><br /><br />
        <asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" CssClass="button" />
        <p>Username: admin, Password: admin123</p>
    </div>
</form>
</body>
</html>

Login.aspx.vb

Partial Class Login Inherits System.Web.UI.Page Protected Sub btnLogin_Click(sender As Object, e As EventArgs) Dim username As String = txtUsername.Text.Trim() Dim password As String = txtPassword.Text.Trim() If username = "admin" AndAlso password = "admin123" Then Session("username") = username Response.Redirect("Dashboard.aspx") Else Response.Write("<script>alert('Invalid credentials');</script>") End If End Sub End Class

Leaves.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Leaves.aspx.vb" Inherits="Leaves" %>
<!DOCTYPE html>
<html>
<head><title>Leave Records</title>
    <link rel="stylesheet" href="styles.css" />
</head>
<body>
<form runat="server">
    <div style="width:400px; margin:auto;">
        <h3>Record Leave</h3>
        <asp:TextBox ID="txtEmpID" runat="server" Placeholder="Employee ID" /><br /><br />
        <asp:TextBox ID="txtLeaveType" runat="server" Placeholder="Leave Type" /><br /><br />
        <asp:TextBox ID="txtLeaveDate" runat="server" TextMode="Date" /><br /><br />
        <asp:TextBox ID="txtDays" runat="server" Placeholder="Number of Days" /><br /><br />
        <asp:Button ID="btnLeave" runat="server" Text="Record Leave" OnClick="btnLeave_Click" CssClass="button" />
        <asp:Button ID="btnBack" runat="server" Text="Back to Dashboard" PostBackUrl="Dashboard.aspx" CssClass="button" />
    </div>
</form>
</body>
</html>

Leaves.aspx.vb

Imports System.Data.SqlClient

Partial Class Leaves
    Inherits System.Web.UI.Page

    Protected Sub btnLeave_Click(sender As Object, e As EventArgs)
        Dim connStr = ConfigurationManager.ConnectionStrings("SqlConn").ConnectionString
        Using conn As New SqlConnection(connStr)
            conn.Open()
            Dim query = "INSERT INTO Leave_Records (EMPLOYEE_ID, LEAVE_TYPE, LEAVE_DATE, LEAVE_DAYS) VALUES (@eid, @lt, @ld, @ldays)"
            Dim cmd = New SqlCommand(query, conn)
            cmd.Parameters.AddWithValue("@eid", txtEmpID.Text)
            cmd.Parameters.AddWithValue("@lt", txtLeaveType.Text)
            cmd.Parameters.AddWithValue("@ld", txtLeaveDate.Text)
            cmd.Parameters.AddWithValue("@ldays", txtDays.Text)
            cmd.ExecuteNonQuery()
            Response.Write("<script>alert('Leave recorded');</script>")
        End Using
    End Sub
End Class

SalarySlip.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="SalarySlip.aspx.vb" Inherits="SalarySlip" %>
<!DOCTYPE html>
<html>
<head>
    <title>Salary Slip</title>
    <link rel="stylesheet" href="styles.css" />
</head>
<body>
    <form runat="server">
        <div style="text-align:center;">
            <h3>View Salary Slip</h3>
            <asp:TextBox ID="txtEmpID" runat="server" Placeholder="Employee ID" CssClass="textbox" /><br /><br />
            <asp:Button ID="btnView" runat="server" Text="View Slip" OnClick="btnView_Click" CssClass="button" /><br /><br />

            <asp:GridView ID="gvSlip" runat="server" AutoGenerateColumns="true" 
                          CssClass="salaryslip-table" GridLines="None"
                          HeaderStyle-CssClass="gv-header"
                          RowStyle-CssClass="gv-row"
                          AlternatingRowStyle-CssClass="gv-alt" /><br />

            <asp:Button ID="btnBack" runat="server" Text="Back to Dashboard" PostBackUrl="Dashboard.aspx" CssClass="button" />
        </div>
    </form>
</body>
</html>

SalarySlip.aspx.vb

Imports System.Data
Imports System.Data.SqlClient

Partial Class SalarySlip
    Inherits System.Web.UI.Page

    Protected Sub btnView_Click(sender As Object, e As EventArgs)
        Dim connStr = ConfigurationManager.ConnectionStrings("SqlConn").ConnectionString
        Using conn As New SqlConnection(connStr)
            conn.Open()
            Dim query = "SELECT e.NAME, p.MONTH, p.YEAR, p.BASIC_SALARY, p.TOTAL_PAY FROM Payment p JOIN Employee_New e ON p.EMPLOYEE_ID = e.EMPLOYEE_ID WHERE p.EMPLOYEE_ID = @eid"
            Dim cmd = New SqlCommand(query, conn)
            cmd.Parameters.AddWithValue("@eid", txtEmpID.Text)
            Dim da As New SqlDataAdapter(cmd)
            Dim dt As New DataTable()
            da.Fill(dt)
            gvSlip.DataSource = dt
            gvSlip.DataBind()
        End Using
    End Sub
End Class

Dashboard.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Dashboard.aspx.vb" Inherits="Dashboard" %>
<!DOCTYPE html>
<html>
<head><title>Dashboard</title>
    <link rel="stylesheet" href="styles.css" />
</head>
<body>
<form runat="server">
    <div style="text-align:center;">
        <h2>Welcome, <asp:Label ID="lblUser" runat="server" /></h2>
        <asp:Button Text="Register Employee" PostBackUrl="Register.aspx" runat="server" CssClass="button" /><br /><br />
        <asp:Button Text="Payments" PostBackUrl="Payments.aspx" runat="server" CssClass="button"/><br /><br />
        <asp:Button Text="Leaves" PostBackUrl="Leaves.aspx" runat="server" CssClass="button"/><br /><br />
        <asp:Button Text="Salary Slip" PostBackUrl="SalarySlip.aspx" runat="server" CssClass="button" /><br /><br />
        <asp:Button ID="btnLogout" runat="server" Text="Logout" OnClick="btnLogout_Click" CssClass="button" /><br /><br />
    </div>
</form>
</body>
</html>

Dashboard.aspx.vb

Partial Class Dashboard
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As EventArgs)
        If Session("username") Is Nothing Then
            Response.Redirect("Login.aspx")
        Else
            lblUser.Text = Session("username").ToString()
        End If
    End Sub

    Protected Sub btnLogout_Click(sender As Object, e As EventArgs)
        Session.Abandon()
        Response.Redirect("Login.aspx")
    End Sub
End Class

Register.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Register.aspx.vb" Inherits="Register" %>
<!DOCTYPE html>
<html>
<head><title>Register Employee</title> <link rel="stylesheet" href="styles.css" />
</head>
<body>
<form runat="server">
    <div style="width:400px; margin:auto;">
        <h3>Register Employee</h3>
        <asp:TextBox ID="txtName" runat="server" Placeholder="Name" /><br /><br />
        <asp:TextBox ID="txtEmail" runat="server" Placeholder="Email" /><br /><br />
        <asp:TextBox ID="txtAddress" runat="server" Placeholder="Address" /><br /><br />
        <asp:TextBox ID="txtPhone" runat="server" Placeholder="Phone" /><br /><br />
        <asp:TextBox ID="txtDOJ" runat="server" TextMode="Date" /><br /><br />
        <asp:Button ID="btnRegister" runat="server" Text="Register" OnClick="btnRegister_Click" CssClass="button"/>
        <asp:Button ID="btnBack" runat="server" Text="Back to Dashboard" PostBackUrl="Dashboard.aspx" CssClass="button" />
    </div>
</form>
</body>
</html>

Register.aspx.vb

Imports System.Data.SqlClient

Partial Class Register
    Inherits System.Web.UI.Page

    Protected Sub btnRegister_Click(sender As Object, e As EventArgs)
        Dim connStr = ConfigurationManager.ConnectionStrings("SqlConn").ConnectionString
        Using conn As New SqlConnection(connStr)
            conn.Open()
            Dim query = "INSERT INTO Employee_New (NAME, EMAIL, ADDRESS, PHONE, DATE_OF_JOINING) VALUES (@name, @mail, @addr, @ph, @doj)"
            Dim cmd = New SqlCommand(query, conn)
            cmd.Parameters.AddWithValue("@name", txtName.Text)
            cmd.Parameters.AddWithValue("@mail", txtEmail.Text)
            cmd.Parameters.AddWithValue("@addr", txtAddress.Text)
            cmd.Parameters.AddWithValue("@ph", txtPhone.Text)
            cmd.Parameters.AddWithValue("@doj", Convert.ToDateTime(txtDOJ.Text))
            cmd.ExecuteNonQuery()
            Response.Write("<script>alert('Employee Registered');</script>")
        End Using
    End Sub
End Class

Payments.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Payments.aspx.vb" Inherits="Payments" %>
<!DOCTYPE html>
<html>
<head><title>Employee Payments</title>
    <link rel="stylesheet" href="styles.css" />
</head>
<body>
<form runat="server">
    <div style="width:400px; margin:auto;">
        <h3>Add Payment</h3>
        <asp:TextBox ID="txtEmpID" runat="server" Placeholder="Employee ID" /><br /><br />
        <asp:TextBox ID="txtMonth" runat="server" Placeholder="Month" /><br /><br />
        <asp:TextBox ID="txtYear" runat="server" Placeholder="Year" /><br /><br />
        <asp:TextBox ID="txtBasic" runat="server" Placeholder="Basic Salary" /><br /><br />
        <asp:TextBox ID="txtTotal" runat="server" Placeholder="Total Pay" /><br /><br />
        <asp:Button ID="btnAddPay" runat="server" Text="Add Payment" OnClick="btnAddPay_Click" />
        <asp:Button ID="btnBack" runat="server" Text="Back to Dashboard" PostBackUrl="Dashboard.aspx" CssClass="button" />
    </div>
</form>
</body>
</html>

Payments.aspx.vb

Imports System.Data.SqlClient

Partial Class Payments
    Inherits System.Web.UI.Page

    Protected Sub btnAddPay_Click(sender As Object, e As EventArgs)
        Dim connStr = ConfigurationManager.ConnectionStrings("SqlConn").ConnectionString
        Using conn As New SqlConnection(connStr)
            conn.Open()
            Dim query = "INSERT INTO Payment (EMPLOYEE_ID, MONTH, YEAR, BASIC_SALARY, TOTAL_PAY) VALUES (@eid, @m, @y, @bs, @tp)"
            Dim cmd = New SqlCommand(query, conn)
            cmd.Parameters.AddWithValue("@eid", txtEmpID.Text)
            cmd.Parameters.AddWithValue("@m", txtMonth.Text)
            cmd.Parameters.AddWithValue("@y", txtYear.Text)
            cmd.Parameters.AddWithValue("@bs", txtBasic.Text)
            cmd.Parameters.AddWithValue("@tp", txtTotal.Text)
            cmd.ExecuteNonQuery()
            Response.Write("<script>alert('Payment added');</script>")
        End Using
    End Sub
End Class

Output Screenshots

Login Authentication

Login Demo

Dashboard

Login Demo

Leave Records

Login Demo

Payment Record

Login Demo

Employee Registeration

Login Demo

Salary Slip

Login Demo

Demonstration

You can try this demo using the following page:

Try Project Demo
View Report
Web hosting by Somee.com