学生信息管理系统实验要求:
实现一个学生信息管理系统,主要包括以下功能模块:
前台:
(1)用户注册登录;
(2)学生信息查询;
(3)教师信息查询;
(4)课程信息查询;
(5)学生成绩查询。
后台:
(1)学生信息管理;
(2)教师信息管理;
(3)班级信息管理;
(4)课程信息管理;
1)课程信息浏览;
2)课程信息添加、修改和删除;
3)学校为所设课程分配任课教师。
(5)学生成绩管理。
1)学生成绩浏览和统计,可按系、班级、课号、年度等条件对成绩进行统计,并将统计结果导出到Word或Execl文档中;
2)学生成绩信息添加、修改和删除;
以下为正式内容:
一、实验目的
1. 熟练运用ASP.NET服务器控件、ASP.NET内置对象以及ADO.NET数据库访问技术;
2. 掌握使用ASP.NET开发Web应用程序的基本方法和基本技能;
3. 综合运用“.Net体系及编程”课程所学知识,设计并实现一个完整的ASP.NET Web应用系统。
二、实验内容
1. 系统功能模块图
学生信息管理系统主要是由登录、注册、主页面、查看学生信息,查看教师信息,查看课程信息,查看班级信息,查看成绩信息,学生信息修改,教师信息修改,课程信息修改,成绩修改,筛选与导出页面所组成。
登录,会验证数据库中有的用户,存在的用户才能够登录
注册,没有账号的用户需要先进行注册,在数据库中存入数据,然后回返回登陆界面,点击登录
主页面是所有页面的导航,点击想要去的页面实现跳转
学生信息页面,会查询出所有学生的信息,并在页面显示
教师信息页面,会查询出所有教室信息,并在页面显示
课程信息页面,会查询所有课程信息,并在页面进行显示
班级信息页面,会查询所有班级信息,并在页面进行显示
成绩查询页面,根据输入的学号,查询出所对应的学生的成绩,并在页面进行显示
学生信息修改页面,我们可以对学生信息进行修改,或者添加新的学生,并且把更改添加以后的数据存入数据库
教师信息修改页面,我们可以对教师信息进行修改,或者添加新的教师,并且把更改添加以后的数据存入数据库
课程信息修改页面,我们可以对课程信息进行修改,或者添加新的课程,并且把更改添加以后的数据存入数据库
成绩信息修改页面,我们可以对成绩信息进行修改,或者添加新的成绩,并且把更改添加以后的数据存入数据库
筛选与导出页面,实现成绩的筛选,并且还可以对筛选后的成绩导出为表格文件
2.数据库设计
3.系统展示(附加代码)
登录界面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="shouye.aspx.cs" Inherits="LoginDemo.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>身份选择</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
width: 300px;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
text-align: center;
}
h2 {
color: #333;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
.btn {
display: inline-block;
width: 100%;
padding: 10px;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease;
}
.btn:hover {
background-color: #0056b3;
}
.message {
margin-top: 15px;
color: red;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>选择您的身份登录</h2>
<div class="form-group">
<asp:RadioButtonList ID="rblRoles" runat="server" CssClass="form-control">
<asp:ListItem Text="学生" Value="Student"></asp:ListItem>
<asp:ListItem Text="教师" Value="Teacher"></asp:ListItem>
<asp:ListItem Text="管理员" Value="Admin"></asp:ListItem>
</asp:RadioButtonList>
</div>
<asp:Button ID="btnLogin" runat="server" Text="登录" CssClass="btn" OnClick="btnLogin_Click" />
</div>
</form>
</body>
</html>
using System;
namespace LoginDemo
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
// 获取选中的角色
string selectedRole = rblRoles.SelectedValue;
// 根据角色跳转到相应页面
switch (selectedRole)
{
case "Student":
Response.Redirect("Loginxuesheng.aspx");
break;
case "Teacher":
Response.Redirect("Loginjiaoshi.aspx");
break;
case "Admin":
Response.Redirect("Login.aspx");
break;
default:
// 默认情况下跳转到错误页面
break;
}
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="JWXT.Login" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Login Page</title>
<style>
body, html {
height: 100%;
margin: 0;
background-image: url('path/to/your/image.jpg'); /* 设置背景图片 */
background-size: cover; /* 背景图片按比例缩放填充页面 */
background-repeat: no-repeat; /* 背景图片不平铺 */
background-position: center; /* 背景图片居中 */
}
.container {
background: rgba(255, 255, 255, 0.8); /* 半透明白色背景 */
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); /* 添加阴影效果 */
width: 300px;
margin: auto;
margin-top: 100px;
}
.form-group {
margin-bottom: 15px;
}
.form-control {
width: 100%; /* 宽度占满父元素 */
padding: 10px; /* 内边距 */
box-sizing: border-box; /* 包括内边距和边框在内的总宽度 */
border: 1px solid #ccc; /* 边框样式 */
border-radius: 5px; /* 圆角边框 */
}
.btn {
width: 100%;
padding: 10px; /* 按钮内边距 */
border: none; /* 移除默认边框 */
border-radius: 5px; /* 圆角边框 */
background-color: #007BFF; /* 按钮背景颜色 */
color: white; /* 按钮文字颜色 */
cursor: pointer; /* 鼠标悬停样式 */
margin-bottom: 10px;
}
.btn:hover {
background-color: #0056b3; /* 按钮悬停背景颜色 */
}
.lblMessage {
display: block; /* 块级元素 */
margin-top: 10px; /* 上边距 */
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h1>学生信息管理系统</h1>
<div class="form-group">
<label for="txtUsername">账号:</label>
<asp:TextBox ID="txtUsername" runat="server" CssClass="form-control" placeholder="Username"></asp:TextBox>
</div>
<div class="form-group">
<label for="txtPassword">密码:</label>
<asp:TextBox ID="txtPassword" runat="server" CssClass="form-control" TextMode="Password" placeholder="Password"></asp:TextBox>
</div>
<asp:Button ID="btnLogin" runat="server" CssClass="btn" Text="登录" OnClick="btnLogin_Click" />
<asp:Button ID="btnRegister" runat="server" CssClass="btn" Text="注册" OnClick="btnRegister_Click" />
<asp:Label ID="lblMessage" runat="server" CssClass="lblMessage" ForeColor="Red"></asp:Label>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace JWXT
{
public partial class Login : Page
{
protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUsername.Text;
string password = txtPassword.Text;
string connectionString = "Data Source=艾砾;Initial Catalog=StudentManagementDB;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT COUNT(*) FROM Users WHERE Username = @Username AND Password = @Password";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password);
connection.Open();
int count = (int)command.ExecuteScalar();
if (count > 0)
{
// 登录成功后跳转到主页或其他页面
Response.Redirect("MainPage.aspx");
}
else
{
// 登录失败,显示错误消息或其他操作
lblMessage.Text = "无效的用户名或密码";
}
}
}
protected void btnRegister_Click(object sender, EventArgs e)
{
// 跳转到注册页面
Response.Redirect("Register.aspx");
}
}
}
密码出错误时:
注册页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="JWXT.Register" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>注册页面</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
width: 300px;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
text-align: center;
}
h2 {
color: #333;
}
.form-group {
margin-bottom: 15px;
text-align: left;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
.btn {
display: inline-block;
width: 100%;
padding: 10px;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease;
}
.btn:hover {
background-color: #0056b3;
}
.message {
margin-top: 15px;
color: red;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>注册</h2>
<div class="form-group">
<label for="txtNewUsername">用户名</label>
<asp:TextBox ID="txtNewUsername" runat="server" placeholder="请输入用户名" CssClass="form-control" />
</div>
<div class="form-group">
<label for="txtNewPassword">密码</label>
<asp:TextBox ID="txtNewPassword" runat="server" TextMode="Password" placeholder="请输入密码" CssClass="form-control" />
</div>
<asp:Button ID="btnRegister" runat="server" Text="注册" CssClass="btn" OnClick="btnRegister_Click" />
<asp:Label ID="lblMessage" runat="server" CssClass="message"></asp:Label>
<asp:Button ID="btnLogout" runat="server" Text="返回" CssClass="btn" OnClick="btnLogout_Click" />
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace JWXT
{
public partial class Register : Page
{
protected void btnRegister_Click(object sender, EventArgs e)
{
string username = txtNewUsername.Text;
string password = txtNewPassword.Text;
string connectionString = "Data Source=艾砾;Initial Catalog=StudentManagementDB;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// 检查用户名是否已存在
string checkUserQuery = "SELECT COUNT(*) FROM Users WHERE Username = @Username";
using (SqlCommand checkUserCmd = new SqlCommand(checkUserQuery, connection))
{
checkUserCmd.Parameters.AddWithValue("@Username", username);
int userCount = (int)checkUserCmd.ExecuteScalar();
if (userCount > 0)
{
lblMessage.Text = "Username already exists.";
return;
}
}
// 插入新用户
string insertUserQuery = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)";
using (SqlCommand insertUserCmd = new SqlCommand(insertUserQuery, connection))
{
insertUserCmd.Parameters.AddWithValue("@Username", username);
insertUserCmd.Parameters.AddWithValue("@Password", password);
insertUserCmd.ExecuteNonQuery();
// 注册成功后跳转到登录页面
Response.Redirect("Login.aspx");
}
}
}
protected void btnLogout_Click(object sender, EventArgs e)
{
// 注销逻辑
Response.Redirect("Login.aspx");
}
}
}
学生端主页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainPagexueshneg.aspx.cs" Inherits="JWXT.MainPagexueshneg" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Main Page</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 50px auto;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
text-align: center;
color: #333;
}
p {
text-align: center;
color: #666;
}
.btn {
display: block;
width: 100%;
padding: 10px 0;
margin: 10px 0;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease;
}
.btn:hover {
background-color: #0056b3;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h1>学生信息管理系统</h1>
<p>服务大厅:</p>
<asp:Button ID="btnCourseInfo" runat="server" Text="课程信息" CssClass="btn" OnClick="btnCourseInfo1_Click" />
<asp:Button ID="btnTeacherInfo" runat="server" Text="教师信息" CssClass="btn" OnClick="btnTeacherInfo1_Click" />
<asp:Button ID="btnStudentGrades" runat="server" Text="成绩查询" CssClass="btn" OnClick="btnStudentGrades1_Click" />
<asp:Button ID="btnLogout" runat="server" Text="注 销" CssClass="btn" OnClick="btnLogout1_Click" />
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace JWXT
{
public partial class MainPagexueshneg : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 页面加载时的逻辑
}
protected void btnCourseInfo1_Click(object sender, EventArgs e)
{
// 跳转到课程信息页面
Response.Redirect("CourseInfo.aspx");
}
protected void btnTeacherInfo1_Click(object sender, EventArgs e)
{
// 跳转到教师信息页面
Response.Redirect("TeacherInfo.aspx");
}
protected void btnStudentGrades1_Click(object sender, EventArgs e)
{
// 跳转到学生成绩页面
Response.Redirect("StudentGrades.aspx");
}
protected void btnLogout1_Click(object sender, EventArgs e)
{
// 注销逻辑
Response.Redirect("shouye.aspx");
}
}
}
教师端主页面:
(代码与上面学生端大同小异)
教务端主页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainPage.aspx.cs" Inherits="JWXT.MainPage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Main Page</title>
<style>
body {
font-family: Arial, sans-serif; /* 设置字体 */
background-color: #f0f8ff; /* 设置背景颜色 */
margin: 0;
padding: 0;
}
.container {
max-width: 600px; /* 最大宽度 */
margin: 50px auto; /* 居中显示 */
padding: 20px;
background-color: #fff; /* 背景颜色 */
border-radius: 10px; /* 边框圆角 */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}
h1 {
text-align: center; /* 标题居中 */
color: #333; /* 标题颜色 */
}
p {
text-align: center; /* 段落居中 */
color: #666; /* 段落颜色 */
}
.btn {
display: block;
width: 100%;
padding: 10px 0;
margin: 10px 0;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease; /* 添加过渡效果 */
}
.btn:hover {
background-color: #0056b3;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h1>学生信息管理系统</h1>
<p>服务大厅:</p>
<asp:Button ID="btnStudentInfo" runat="server" Text="学生信息" CssClass="btn" OnClick="btnStudentInfo_Click" />
<asp:Button ID="btnCourseInfo" runat="server" Text="课程信息" CssClass="btn" OnClick="btnCourseInfo_Click" />
<asp:Button ID="btnTeacherInfo" runat="server" Text="教师信息" CssClass="btn" OnClick="btnTeacherInfo_Click" />
<asp:Button ID="btnClassManagement" runat="server" Text="班级管理" CssClass="btn" OnClick="btnClassManagement_Click" />
<asp:Button ID="btnCourseManagement" runat="server" Text="课程管理" CssClass="btn" OnClick="btnCourseManagement_Click" />
<asp:Button ID="btnGradeManagement" runat="server" Text="成绩管理" CssClass="btn" OnClick="btnGradeManagement_Click" />
<asp:Button ID="btnStudentGrades" runat="server" Text="成绩查询" CssClass="btn" OnClick="btnStudentGrades_Click" />
<asp:Button ID="btnStudentManagement" runat="server" Text="学生管理" CssClass="btn" OnClick="btnStudentManagement_Click" />
<asp:Button ID="btnTeacherManagement" runat="server" Text="教师管理" CssClass="btn" OnClick="btnTeacherManagement_Click" />
<asp:Button ID="btnFilterAndExport" runat="server" Text="筛选导出" CssClass="btn" OnClick="btnFilterAndExport_Click" />
<asp:Button ID="btnLogout" runat="server" Text="注 销" CssClass="btn" OnClick="btnLogout_Click" />
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace JWXT
{
public partial class MainPage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 页面加载时的逻辑
}
protected void btnStudentInfo_Click(object sender, EventArgs e)
{
// 跳转到学生信息页面
Response.Redirect("StudentInfo.aspx");
}
protected void btnTeacherInfo_Click(object sender, EventArgs e)
{
// 跳转到教师信息页面
Response.Redirect("TeacherInfo.aspx");
}
protected void btnCourseInfo_Click(object sender, EventArgs e)
{
// 跳转到课程信息页面
Response.Redirect("CourseInfo.aspx");
}
protected void btnClassManagement_Click(object sender, EventArgs e)
{
// 跳转到班级管理页面
Response.Redirect("ClassManagement.aspx");
}
protected void btnCourseManagement_Click(object sender, EventArgs e)
{
// 跳转到课程管理页面
Response.Redirect("CourseManagement.aspx");
}
protected void btnGradeManagement_Click(object sender, EventArgs e)
{
// 跳转到成绩管理页面
Response.Redirect("GradeManagement.aspx");
}
protected void btnStudentGrades_Click(object sender, EventArgs e)
{
// 跳转到学生成绩页面
Response.Redirect("StudentGrades.aspx");
}
protected void btnStudentManagement_Click(object sender, EventArgs e)
{
// 跳转到学生管理页面
Response.Redirect("StudentManagement.aspx");
}
protected void btnTeacherManagement_Click(object sender, EventArgs e)
{
// 跳转到教师管理页面
Response.Redirect("TeacherManagement.aspx");
}
protected void btnFilterAndExport_Click(object sender, EventArgs e)
{
// 跳转到筛选导出页面
Response.Redirect("FilterAndExport.aspx");
}
protected void btnLogout_Click(object sender, EventArgs e)
{
// 注销逻辑
Response.Redirect("shouye.aspx");
}
}
}
下面开始分个介绍功能:
学生信息:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="StudentInfo.aspx.cs" Inherits="JWXT.StudentInfo" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>学生信息</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
width: 600px;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
text-align: center;
}
h2 {
color: #333;
margin-bottom: 20px;
}
.aspNet-GridView {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
.aspNet-GridView th, .aspNet-GridView td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
.aspNet-GridView th {
padding-top: 12px;
padding-bottom: 12px;
background-color: #007bff;
color: white;
}
.aspNet-GridView tr:nth-child(even) {
background-color: #f2f2f2;
}
.aspNet-GridView tr:hover {
background-color: #ddd;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>学生信息</h2>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="aspNet-GridView">
<Columns>
<asp:BoundField DataField="StudentId" HeaderText="学生ID" />
<asp:BoundField DataField="Name" HeaderText="姓名" />
<asp:BoundField DataField="BirthDate" HeaderText="出生日期" />
<asp:BoundField DataField="ClassId" HeaderText="班级ID" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace JWXT
{
public partial class StudentInfo : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 更新查询以匹配实际的数据库列名
string query = "SELECT StudentId, Name, BirthDate, ClassId FROM Students";
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}
课程信息:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CourseInfo.aspx.cs" Inherits="JWXT.CourseInfo" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Course Info</title>
<style>
body {
font-family: Arial, sans-serif; /* 设置字体 */
background-color: #f0f8ff; /* 设置背景颜色 */
margin: 0;
padding: 0;
}
.container {
max-width: 800px; /* 最大宽度 */
margin: 50px auto; /* 居中显示 */
padding: 20px;
background-color: #fff; /* 背景颜色 */
border-radius: 10px; /* 边框圆角 */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}
h2 {
text-align: center; /* 标题居中 */
color: #333; /* 标题颜色 */
}
.grid-view {
width: 100%;
border-collapse: collapse; /* 合并边框 */
margin-top: 20px; /* 添加顶部外边距 */
}
.grid-view th, .grid-view td {
padding: 10px;
border: 1px solid #ddd;
text-align: left;
}
.grid-view th {
background-color: #f2f2f2;
}
.form-group {
margin: 15px 0;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>课程信息</h2>
<asp:GridView ID="GridView1" runat="server" CssClass="grid-view" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="CourseId" HeaderText="课程号" />
<asp:BoundField DataField="CourseName" HeaderText="课程名称" />
<asp:BoundField DataField="TeacherId" HeaderText="教师ID" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace JWXT
{
public partial class CourseInfo : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 更新查询以匹配实际的数据库列名
string query = "SELECT CourseId, CourseName, TeacherId FROM Courses";
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}
教师信息:
(代码与上大同小异,就是链接数据库显示)
班级管理:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ClassManagement.aspx.cs" Inherits="JWXT.ClassManagement" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Class Management</title>
<style>
body {
font-family: Arial, sans-serif; /* 设置字体 */
background-color: #f0f8ff; /* 设置背景颜色 */
margin: 0;
padding: 0;
}
.container {
max-width: 800px; /* 最大宽度 */
margin: 50px auto; /* 居中显示 */
padding: 20px;
background-color: #fff; /* 背景颜色 */
border-radius: 10px; /* 边框圆角 */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}
h2 {
text-align: center; /* 标题居中 */
color: #333; /* 标题颜色 */
}
.btn {
display: inline-block;
padding: 10px 20px;
margin: 10px 0;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease; /* 添加过渡效果 */
text-align: center;
text-decoration: none;
}
.btn:hover {
background-color: #0056b3;
}
.grid-view {
width: 100%;
border-collapse: collapse; /* 合并边框 */
}
.grid-view th, .grid-view td {
padding: 10px;
border: 1px solid #ddd;
text-align: left;
}
.grid-view th {
background-color: #f2f2f2;
}
.form-group {
margin: 15px 0;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>班级管理</h2>
<asp:GridView ID="GridView1" runat="server" CssClass="grid-view" AutoGenerateColumns="False" DataKeyNames="ClassId" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting">
<Columns>
<asp:BoundField DataField="ClassId" HeaderText="班级号" ReadOnly="True" />
<asp:BoundField DataField="ClassName" HeaderText="班级名称" />
<asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<asp:Button ID="btnAdd" runat="server" CssClass="btn" Text="添加新班级" OnClick="btnAdd_Click" />
<asp:Panel ID="pnlAddClass" runat="server" Visible="False">
<h3></h3>
<div class="form-group">
<label for="txtClassName">班级名称:</label>
<asp:TextBox ID="txtClassName" runat="server" CssClass="form-control" />
</div>
<asp:Button ID="btnSave" runat="server" CssClass="btn" Text="保存" OnClick="btnSave_Click" />
<asp:Button ID="btnCancel" runat="server" CssClass="btn" Text="取消" OnClick="btnCancel_Click" />
</asp:Panel>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace JWXT
{
public partial class ClassManagement : Page
{
// 页面加载事件
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) // 检查是否是首次加载页面
{
BindGridView(); // 绑定GridView控件的数据
}
}
// 绑定GridView控件的数据
private void BindGridView()
{
// 从配置文件中获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
// 使用SqlConnection连接数据库
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 查询Classes表中的ClassId和ClassName列
string query = "SELECT ClassId, ClassName FROM Classes";
SqlDataAdapter adapter = new SqlDataAdapter(query, connection); // 使用SqlDataAdapter填充DataTable
DataTable dt = new DataTable();
adapter.Fill(dt); // 填充数据表
GridView1.DataSource = dt; // 设置GridView的数据源
GridView1.DataBind(); // 绑定数据到GridView控件
}
}
// 处理GridView控件的行编辑事件
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex; // 设置编辑行的索引
BindGridView(); // 重新绑定GridView控件的数据
}
// 处理GridView控件的行取消编辑事件
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1; // 重置编辑行的索引
BindGridView(); // 重新绑定GridView控件的数据
}
// 处理GridView控件的行更新事件
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex]; // 获取正在编辑的行
int classId = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]); // 获取ClassId
string className = (row.Cells[1].Controls[0] as TextBox).Text; // 获取ClassName
// 从配置文件中获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
// 使用SqlConnection连接数据库
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 更新Classes表中的ClassName列
string query = "UPDATE Classes SET ClassName = @ClassName WHERE ClassId = @ClassId";
SqlCommand cmd = new SqlCommand(query, connection); // 使用SqlCommand执行SQL语句
cmd.Parameters.AddWithValue("@ClassName", className); // 添加ClassName参数
cmd.Parameters.AddWithValue("@ClassId", classId); // 添加ClassId参数
connection.Open(); // 打开数据库连接
cmd.ExecuteNonQuery(); // 执行SQL语句
connection.Close(); // 关闭数据库连接
}
GridView1.EditIndex = -1; // 重置编辑行的索引
BindGridView(); // 重新绑定GridView控件的数据
}
// 处理GridView控件的行删除事件
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int classId = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]); // 获取ClassId
// 从配置文件中获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
// 使用SqlConnection连接数据库
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 删除Classes表中的记录
string query = "DELETE FROM Classes WHERE ClassId = @ClassId";
SqlCommand cmd = new SqlCommand(query, connection); // 使用SqlCommand执行SQL语句
cmd.Parameters.AddWithValue("@ClassId", classId); // 添加ClassId参数
connection.Open(); // 打开数据库连接
cmd.ExecuteNonQuery(); // 执行SQL语句
connection.Close(); // 关闭数据库连接
}
BindGridView(); // 重新绑定GridView控件的数据
}
// 处理添加按钮的点击事件,显示添加面板
protected void btnAdd_Click(object sender, EventArgs e)
{
pnlAddClass.Visible = true; // 显示添加面板
}
// 处理保存按钮的点击事件,保存新的班级信息
protected void btnSave_Click(object sender, EventArgs e)
{
string className = txtClassName.Text; // 获取ClassName
// 从配置文件中获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
// 使用SqlConnection连接数据库
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 向Classes表中插入新的记录
string query = "INSERT INTO Classes (ClassName) VALUES (@ClassName)";
SqlCommand cmd = new SqlCommand(query, connection); // 使用SqlCommand执行SQL语句
cmd.Parameters.AddWithValue("@ClassName", className); // 添加ClassName参数
connection.Open(); // 打开数据库连接
cmd.ExecuteNonQuery(); // 执行SQL语句
connection.Close(); // 关闭数据库连接
}
pnlAddClass.Visible = false; // 隐藏添加面板
BindGridView(); // 重新绑定GridView控件的数据
}
// 处理取消按钮的点击事件,隐藏添加面板
protected void btnCancel_Click(object sender, EventArgs e)
{
pnlAddClass.Visible = false; // 隐藏添加面板
}
}
}
成绩管理:
(代码与上一个相差不多)
学生管理:
(代码相差不多。不在展示)
教师管理:
(同上)
成绩查询:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="StudentGrades.aspx.cs" Inherits="JWXT.StudentGrades" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>学生成绩查询</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
width: 600px;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
text-align: center;
}
h2 {
color: #333;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 15px;
text-align: left;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input {
width: calc(100% - 22px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
.btn {
display: inline-block;
width: 100%;
padding: 10px;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease;
}
.btn:hover {
background-color: #0056b3;
}
.grid-container {
margin-top: 20px;
}
.grid-container .grid-header {
font-weight: bold;
background-color: #e0e0e0;
padding: 10px;
border-bottom: 2px solid #ccc;
}
.grid-container .grid-row {
padding: 10px;
border-bottom: 1px solid #ccc;
}
.aspNet-GridView {
width: 100%;
border-collapse: collapse;
}
.aspNet-GridView th, .aspNet-GridView td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
.aspNet-GridView th {
padding-top: 12px;
padding-bottom: 12px;
background-color: #007bff;
color: white;
}
.aspNet-GridView tr:nth-child(even) {
background-color: #f2f2f2;
}
.aspNet-GridView tr:hover {
background-color: #ddd;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>学生成绩查询</h2>
<div class="form-group">
<label for="txtStudentID">输入学生ID:</label>
<asp:TextBox ID="txtStudentID" runat="server" CssClass="form-control" />
</div>
<asp:Button ID="btnSearch" runat="server" Text="查询" CssClass="btn" OnClick="btnSearch_Click" />
<div class="grid-container">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="aspNet-GridView">
<Columns>
<asp:BoundField DataField="GradeId" HeaderText="成绩ID" />
<asp:BoundField DataField="CourseName" HeaderText="课程名称" />
<asp:BoundField DataField="Grade" HeaderText="成绩" />
<asp:BoundField DataField="Year" HeaderText="学年" />
</Columns>
</asp:GridView>
</div>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace JWXT
{
public partial class StudentGrades : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGridView();
}
private void BindGridView()
{
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
int studentID;
if (int.TryParse(txtStudentID.Text, out studentID))
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 查询学生的成绩信息,并包含课程名称
string query = @"
SELECT
g.GradeId,
c.CourseName,
g.Grade,
g.Year
FROM Grades g
JOIN Courses c ON g.CourseId = c.CourseId
WHERE g.StudentId = @StudentId";
SqlCommand cmd = new SqlCommand(query, connection);
cmd.Parameters.AddWithValue("@StudentId", studentID);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
else
{
// 清空 GridView 数据源
GridView1.DataSource = null;
GridView1.DataBind();
}
}
}
}
筛选导出:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FilterAndExport.aspx.cs" Inherits="JWXT.FilterAndExport" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>学生成绩查询与导出</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
width: 600px;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
text-align: center;
}
h2 {
color: #333;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 15px;
text-align: left;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group select {
width: calc(100% - 22px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
.btn {
display: inline-block;
width: 100%;
padding: 10px;
font-size: 16px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease;
}
.btn:hover {
background-color: #0056b3;
}
.grid-container {
margin-top: 20px;
}
.aspNet-GridView {
width: 100%;
border-collapse: collapse;
}
.aspNet-GridView th, .aspNet-GridView td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
.aspNet-GridView th {
padding-top: 12px;
padding-bottom: 12px;
background-color: #007bff;
color: white;
}
.aspNet-GridView tr:nth-child(even) {
background-color: #f2f2f2;
}
.aspNet-GridView tr:hover {
background-color: #ddd;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>学生成绩查询与导出</h2>
<div class="form-group">
<label for="ddlDepartment">选择系:</label>
<asp:DropDownList ID="ddlDepartment" runat="server" CssClass="form-control"></asp:DropDownList>
</div>
<div class="form-group">
<label for="ddlClass">选择班级:</label>
<asp:DropDownList ID="ddlClass" runat="server" CssClass="form-control"></asp:DropDownList>
</div>
<div class="form-group">
<label for="ddlCourse">选择课程:</label>
<asp:DropDownList ID="ddlCourse" runat="server" CssClass="form-control"></asp:DropDownList>
</div>
<div class="form-group">
<label for="ddlYear">选择学年:</label>
<asp:DropDownList ID="ddlYear" runat="server" CssClass="form-control"></asp:DropDownList>
</div>
<asp:Button ID="btnFilter" runat="server" Text="查询" CssClass="btn" OnClick="btnFilter_Click" />
<asp:Button ID="btnExportExcel" runat="server" Text="导出到Excel" CssClass="btn" OnClick="btnExportExcel_Click" />
<div class="grid-container">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="aspNet-GridView">
<Columns>
<asp:BoundField DataField="Name" HeaderText="学生姓名" />
<asp:BoundField DataField="CourseName" HeaderText="课程名称" />
<asp:BoundField DataField="Grade" HeaderText="成绩" />
<asp:BoundField DataField="Year" HeaderText="学年" />
</Columns>
</asp:GridView>
</div>
</div>
</form>
</body>
</html>
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
using OfficeOpenXml;
namespace JWXT
{
public partial class FilterAndExport : System.Web.UI.Page
{
// 从配置文件中获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["SchoolDB"].ConnectionString;
// 页面加载事件
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) // 检查是否是首次加载页面
{
PopulateDropDownLists(); // 填充下拉列表
}
}
// 填充所有下拉列表
private void PopulateDropDownLists()
{
// 填充部门下拉列表
PopulateDropDownList("SELECT DepartmentId, DepartmentName FROM Departments", ddlDepartment, "DepartmentName", "DepartmentId");
// 填充班级下拉列表
PopulateDropDownList("SELECT ClassId, ClassName, DepartmentId FROM Classes", ddlClass, "ClassName", "ClassId");
// 填充课程下拉列表
PopulateDropDownList("SELECT CourseId, CourseName FROM Courses", ddlCourse, "CourseName", "CourseId");
// 填充年份下拉列表
PopulateDropDownList("SELECT DISTINCT Year FROM Grades", ddlYear, "Year", "Year");
}
// 根据查询填充下拉列表
private void PopulateDropDownList(string query, DropDownList ddl, string textField, string valueField)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(query, connection);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt); // 填充数据表
ddl.DataSource = dt; // 设置数据源
ddl.DataTextField = textField; // 设置显示字段
ddl.DataValueField = valueField; // 设置值字段
ddl.DataBind(); // 绑定数据
ddl.Items.Insert(0, new ListItem("-- Select --", "")); // 添加默认选项
}
}
// 过滤按钮点击事件
protected void btnFilter_Click(object sender, EventArgs e)
{
BindGridView(); // 绑定GridView控件的数据
}
// 绑定GridView控件的数据
private void BindGridView()
{
string departmentId = ddlDepartment.SelectedValue;
string classId = ddlClass.SelectedValue;
string courseId = ddlCourse.SelectedValue;
string year = ddlYear.SelectedValue;
// 构建查询语句
string query = "SELECT s.Name, c.CourseName, g.Grade, g.Year, d.DepartmentName FROM Grades g " +
"JOIN Students s ON g.StudentId = s.StudentId " +
"JOIN Courses c ON g.CourseId = c.CourseId " +
"JOIN Classes cl ON s.ClassId = cl.ClassId " +
"JOIN Departments d ON cl.DepartmentId = d.DepartmentId " +
"WHERE 1=1 ";
// 根据选择的过滤条件添加相应的查询条件
if (!string.IsNullOrEmpty(departmentId))
{
query += "AND d.DepartmentId = @DepartmentId ";
}
if (!string.IsNullOrEmpty(classId))
{
query += "AND s.ClassId = @ClassId ";
}
if (!string.IsNullOrEmpty(courseId))
{
query += "AND g.CourseId = @CourseId ";
}
if (!string.IsNullOrEmpty(year))
{
query += "AND g.Year = @Year ";
}
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
if (!string.IsNullOrEmpty(departmentId))
{
command.Parameters.AddWithValue("@DepartmentId", departmentId);
}
if (!string.IsNullOrEmpty(classId))
{
command.Parameters.AddWithValue("@ClassId", classId);
}
if (!string.IsNullOrEmpty(courseId))
{
command.Parameters.AddWithValue("@CourseId", courseId);
}
if (!string.IsNullOrEmpty(year))
{
command.Parameters.AddWithValue("@Year", year);
}
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable dt = new DataTable();
adapter.Fill(dt); // 填充数据表
GridView1.DataSource = dt; // 设置GridView的数据源
GridView1.DataBind(); // 绑定数据到GridView控件
}
}
// 导出到Excel按钮点击事件
protected void btnExportExcel_Click(object sender, EventArgs e)
{
string departmentId = ddlDepartment.SelectedValue;
string classId = ddlClass.SelectedValue;
string courseId = ddlCourse.SelectedValue;
string year = ddlYear.SelectedValue;
// 构建查询语句
string query = "SELECT s.Name, c.CourseName, g.Grade, g.Year, d.DepartmentName FROM Grades g " +
"JOIN Students s ON g.StudentId = s.StudentId " +
"JOIN Courses c ON g.CourseId = c.CourseId " +
"JOIN Classes cl ON s.ClassId = cl.ClassId " +
"JOIN Departments d ON cl.DepartmentId = d.DepartmentId " +
"WHERE 1=1 ";
// 根据选择的过滤条件添加相应的查询条件
if (!string.IsNullOrEmpty(departmentId))
{
query += "AND d.DepartmentId = @DepartmentId ";
}
if (!string.IsNullOrEmpty(classId))
{
query += "AND s.ClassId = @ClassId ";
}
if (!string.IsNullOrEmpty(courseId))
{
query += "AND g.CourseId = @CourseId ";
}
if (!string.IsNullOrEmpty(year))
{
query += "AND g.Year = @Year ";
}
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
if (!string.IsNullOrEmpty(departmentId))
{
command.Parameters.AddWithValue("@DepartmentId", departmentId);
}
if (!string.IsNullOrEmpty(classId))
{
command.Parameters.AddWithValue("@ClassId", classId);
}
if (!string.IsNullOrEmpty(courseId))
{
command.Parameters.AddWithValue("@CourseId", courseId);
}
if (!string.IsNullOrEmpty(year))
{
command.Parameters.AddWithValue("@Year", year);
}
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable dt = new DataTable();
adapter.Fill(dt); // 填充数据表
// 设置ExcelPackage的许可证上下文
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (ExcelPackage pck = new ExcelPackage())
{
// 创建工作表并加载数据
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Grades");
ws.Cells["A1"].LoadFromDataTable(dt, true); // 从数据表加载数据
ws.Cells[ws.Dimension.Address].AutoFitColumns(); // 自动调整列宽
// 设置响应头以触发文件下载
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=Grades.xlsx");
Response.BinaryWrite(pck.GetAsByteArray()); // 以二进制格式写入文件内容
Response.End();
}
}
}
}
}
注销:
点击注销以后会退出到最开始的选择身份登录界面
如需完整代码包,可私信。