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