使用SQLServer管理员考勤系统

使用SQLServer管理员考勤系统

介绍

管理员考勤系统是一个主要是为管理人员设计的软件,主要用于管理人员的考勤。它可以记录管理员的上下班时间、请假、出差、培训等情况,并且可以生成相应的报表,方便管理人员进行考勤管理。

SQLServer数据库

管理员考勤系统的底层是数据库,数据库管理系统的选择非常重要。一般来说,企业级别的系统使用SQLServer数据库是一个比较好的选择。SQLServer数据库是由微软公司开发的关系型数据库管理系统,它具有可靠性高、性能稳定、安全性好等优点。

数据库表设计

管理员考勤系统需要设计数据库表,以便存储管理员的考勤信息。下面是管理员考勤系统的数据库表设计:

CREATE TABLE [dbo].[AdminAttendance]

(

[ID] INT NOT NULL PRIMARY KEY IDENTITY,

[AdminID] INT NOT NULL,

[Date] DATE NOT NULL,

[SignInTime] TIME NULL,

[SignOutTime] TIME NULL,

[Leave] BIT NOT NULL,

[LeaveType] NVARCHAR(100) NULL,

[BusinessTrip] BIT NOT NULL,

[BusinessTripReason] NVARCHAR(100) NULL,

[Training] BIT NOT NULL,

[TrainingReason] NVARCHAR(100) NULL

)

上面的代码创建了一个名为AdminAttendance的数据库表,用来存储管理员的考勤信息。其中,ID是自增长的主键,AdminID表示管理员的ID,Date表示考勤日期,SignInTime表示签到时间,SignOutTime表示签退时间,Leave表示是否请假,LeaveType表示请假类型,BusinessTrip表示是否出差,BusinessTripReason表示出差原因,Training表示是否参加培训,TrainingReason表示培训原因。

系统后台开发

数据库连接

管理员考勤系统需要通过代码连接数据库。首先需要在代码中添加System.Data.SqlClient命名空间,然后使用SqlConnection对象创建数据库连接,如下所示:

using System.Data.SqlClient;

class ConnectString

{

static SqlConnection conn = new SqlConnection(

"Data Source=your_server;Initial Catalog=your_database;Integrated Security=True");

}

上面的代码创建了一个名为connSqlConnection对象,用来连接数据库。其中your_server是数据库服务器的名称,your_database是数据库的名称。

数据插入

管理员考勤系统需要将管理员的考勤信息插入数据库中。插入数据使用SqlCommand对象和ExecuteNonQuery方法,如下所示:

using System.Data.SqlClient;

class InsertData

{

static void Insert(string AdminID, string Date, string SignInTime,

string SignOutTime, bool Leave, string LeaveType, bool BusinessTrip,

string BusinessTripReason, bool Training, string TrainingReason)

{

SqlConnection conn = new SqlConnection(

"Data Source=your_server;Initial Catalog=your_database;Integrated Security=True");

string sql = "INSERT INTO AdminAttendance(AdminID, Date, SignInTime, SignOutTime, Leave, LeaveType, BusinessTrip, BusinessTripReason, Training, TrainingReason) "

+ "VALUES(@AdminID, @Date, @SignInTime, @SignOutTime, @Leave, @LeaveType, @BusinessTrip, @BusinessTripReason, @Training, @TrainingReason)";

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.Parameters.AddWithValue("@AdminID", AdminID);

cmd.Parameters.AddWithValue("@Date", Date);

cmd.Parameters.AddWithValue("@SignInTime", SignInTime);

cmd.Parameters.AddWithValue("@SignOutTime", SignOutTime);

cmd.Parameters.AddWithValue("@Leave", Leave);

cmd.Parameters.AddWithValue("@LeaveType", LeaveType);

cmd.Parameters.AddWithValue("@BusinessTrip", BusinessTrip);

cmd.Parameters.AddWithValue("@BusinessTripReason", BusinessTripReason);

cmd.Parameters.AddWithValue("@Training", Training);

cmd.Parameters.AddWithValue("@TrainingReason", TrainingReason);

conn.Open();

int result = cmd.ExecuteNonQuery();

conn.Close();

}

}

上面的代码创建了一个名为Insert的方法,用来将管理员的考勤信息插入数据库中。其中使用了SqlParameter对象来添加参数,防止SQL注入攻击。

数据查询

管理员考勤系统需要查询管理员的考勤信息,查询数据使用SqlCommand对象和ExecuteReader方法,如下所示:

using System.Data.SqlClient;

class SelectData

{

static void Select(string AdminID, string Date)

{

SqlConnection conn = new SqlConnection(

"Data Source=your_server;Initial Catalog=your_database;Integrated Security=True");

string sql = "SELECT AdminID, Date, SignInTime, SignOutTime, Leave, LeaveType, BusinessTrip, BusinessTripReason, Training, TrainingReason "

+ "FROM AdminAttendance WHERE AdminID=@AdminID AND Date=@Date";

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.Parameters.AddWithValue("@AdminID", AdminID);

cmd.Parameters.AddWithValue("@Date", Date);

conn.Open();

SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())

{

Console.WriteLine(reader["AdminID"] + "\t" + reader["Date"] + "\t" + reader["SignInTime"] + "\t"

+ reader["SignOutTime"] + "\t" + reader["Leave"] + "\t" + reader["LeaveType"] + "\t"

+ reader["BusinessTrip"] + "\t" + reader["BusinessTripReason"] + "\t" + reader["Training"] + "\t"

+ reader["TrainingReason"]);

}

reader.Close();

conn.Close();

}

}

上面的代码创建了一个名为Select的方法,用来查询管理员的考勤信息。其中使用了SqlDataReader对象读取查询结果。

总结

管理员考勤系统是一个非常实用的工具,它可以帮助管理人员更加高效地管理管理员的考勤信息。本文介绍了使用SQLServer数据库开发管理员考勤系统的方法,包括数据库表设计、数据库连接、数据插入和数据查询。希望本文对您有所帮助。

数据库标签