【C#+JavaScript+SQL Server】实现Web端考试系统 六:后台管理模块设计(附源码和资源)

news2024/11/19 9:39:24

需要源码和资源请点赞关注收藏后评论区留言私信~~~

一、后台管理模块概述

在线考试系统中,后台管理员模块具有最高权限,管理员通过登录模块成功登录之后,可以对试题信息,教师信息,考生信息,考试科目信息以及考试结果进行管理,使系统维护起来更方便快捷

 

 二、管理学生基本信息

该网页主要用于实现对学生基本信息的查询,修改和删除,其中用到的主要控件如下

1:查询学生信息

调用BindDG方法从数据表中获取所有学生信息,并将其显示在GridView控件上

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["admin"] == null)									//禁止匿名登录
    {
        Response.Redirect("../Login.aspx");
    }
    if (!IsPostBack)
    {
        string strsql = "select * from tb_Student order by ID desc";	//检索所有学生信息
        BaseClass.BindDG(gvStuInfo, "ID", strsql, "stuinfo");		//绑定控件
    }
}

如果要查询学生信息,首先需要选择查询条件,然后在文本框中输入关键字,单击查看按钮,查看按钮的Click事件代码如下

protected void btnserch_Click(object sender, EventArgs e)
{
    if (txtKey.Text == "")										//检查是否输入了关键字
    {
        string strsql = "select * from tb_Student order by ID desc";	//检索所有学生信息
        BaseClass.BindDG(gvStuInfo, "ID", strsql, "stuinfo");		//绑定控件
    }
    else
    {
        string stype = ddlType.SelectedItem.Text;					//获取查询范围
        string strsql = "";
        switch (stype)
        {
            case "学号":											//如果查询范围是“学号”
                strsql = "select * from tb_Student where StudentNum like '%" + txtKey.Text.Trim() 
+ "%'";
                BaseClass.BindDG(gvStuInfo, "ID", strsql, "stuinfo"); ;
                break;
            case "姓名":											//如果查询范围是“姓名”
                strsql = "select * from tb_Student where StudentName like '%" + 
txtKey.Text.Trim() + "%'";
                BaseClass.BindDG(gvStuInfo, "ID", strsql, "stuinfo");
                break;
        }
    }
}

2:添加学生信息

在添加学生信息页面输入要添加的学生信息后,单击添加按钮,使用Sqlcommand对象的ExecuteNonQuery方法执行添加学生的SQL语句,从而实现将学生信息添加到数据表中的功能,添加按钮的Click事件代码如下

 

protected void btnSubmit_Click(object sender, EventArgs e)
{
    long iloing = 0;
    if (!long.TryParse(txtNum.Text, out iloing))
    {
        MessageBox.Show("考生编号请输入数字");
        return;
    }
    if (txtName.Text == "" || txtNum.Text == "" || txtPwd.Text == "")//检查信息输入是否完整
    {
        MessageBox.Show("请将信息填写完整");							//弹出提示信息
        return;
    }
    else
    {
        SqlConnection conn = BaseClass.DBCon();						//连接数据库
        conn.Open();												//打开连接
        SqlCommand cmd = new SqlCommand("select count(*) from tb_Student where StudentNum='" 
+ txtNum.Text + "'", conn);
        int i = Convert.ToInt32(cmd.ExecuteScalar());				//获取返回值
        if (i > 0)												//如果返回值大于0
        {
            MessageBox.Show("此学号已经存在");						//提示学号已经存在
            return;
        }
        else
        {
            //将新增学生信息添加到数据库中
            cmd = new SqlCommand("insert into 
tb_Student(StudentNum,StudentName,StudentSex,StudentPwd) values('" + txtNum.Text.Trim() + 
"','" + txtName.Text.Trim() + "','" + rblSex.SelectedValue.ToString() + "','" + 
txtPwd.Text.Trim() + "')", conn);
            cmd.ExecuteNonQuery();
            conn.Close();											//关闭连接
            MessageBox.Show("添加成功");								//提示添加成功
            btnConcel_Click(sender, e);
        }
    }
}

 

3:修改学生信息

在修改学生信息页面设置完学生的信息后,单击保存按钮,首先判断是否设置了学生编号,姓名和密码,如果已经设置,则调用OperateData方法实现学生信息的修改功能,保存按钮的Click事件代码如下

protected void btnSava_Click(object sender, EventArgs e)
{
    long iloing = 0;//临时变量
    if (!long.TryParse(txtStuNum.Text, out iloing))//判断学生编号是否为数字,如果不是,输出0
    {
        MessageBox.Show("考生编号请输入数字");
        return;
    }
    //判断学生姓名和密码文本框是否为空
    if (txtStuName.Text.Trim() == "" || txtStuPwd.Text.Trim() == "") 
    {
        MessageBox.Show("请将信息填写完整");
        return;
    }
    else
    {
        //定义更新学生信息的SQL语句
        string str = "update tb_Student set StudentName='" + txtStuName.Text.Trim() + 
"',StudentPwd='" + txtStuPwd.Text.Trim() + "',StudentSex='" + rblSex.SelectedItem.Text + "' 
where ID=" + id;
        BaseClass.OperateData(str);//执行更新操作
        Response.Redirect("StudentInfo.aspx");//返回学生信息页面
    }
}

4:删除学生信息

单击删除按钮后会触发RowDeleting事件

protected void gvStuInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    int id = (int)gvStuInfo.DataKeys[e.RowIndex].Value;			//记录要删除的学生编号
    string str = "delete from tb_Student where ID=" + id;		//定义删除学生信息的SQL语句
    BaseClass.OperateData(str);								//执行删除学生信息操作
    string strsql = "select * from tb_Student order by ID desc";//获取学生信息表中的最新记录
    BaseClass.BindDG(gvStuInfo, "ID", strsql, "stuinfo");		//显示最新的学生信息
}

三、考试科目的管理

该网页主要用于显示,添加和删除考试科目信息。考试科目管理页面加载时,首先判断管理员是否已经登录,如果已经登录则执行SQL查询语句,将所有的科目信息检索出来,并将其显示在ListBox控件上

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["admin"] == null)						//禁止匿名登录
    {
        Response.Redirect("../Login.aspx");
    }
    if (!IsPostBack)
    {
        SqlConnection conn = BaseClass.DBCon();			//连接数据库
        conn.Open();									//打开连接
        SqlCommand cmd = new SqlCommand("select * from tb_Lesson", conn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            ListBox1.Items.Add(sdr["LessonName"].ToString());
        }
    }
}

输入新增科目信息后,单击添加按钮即可将输入的科目信息添加到数据表中

protected void btnAdd_Click(object sender, EventArgs e)
{
    if (txtKCName.Text == "")							//判断是否输入课程名称
    {
        MessageBox.Show("请输入课程名称");				//弹出提示信息
        return;
    }
    else
    {
        string systemTime = DateTime.Now.ToString();	//获取当前系统时间
        string strsql = "insert into tb_Lesson(LessonName,LessonDataTime) values('" + 
txtKCName.Text.Trim() + "','" + systemTime + "')";		//将信息插入数据库中的课程信息表中
        BaseClass.OperateData(strsql);					//执行SQL语句
        txtKCName.Text = "";
        Response.Write("<script>alert('添加成功');location='Subject.aspx'</script>");
    }
}

在ListBox控件中选择要删除的科目,单击删除按钮即可执行删除指定科目的SQL语句,删除按钮的Click事件代码如下

protected void btnDelete_Click(object sender, EventArgs e)
{
    if (ListBox1.SelectedValue.ToString() == "")		//判断是否有选中项
    {
        MessageBox.Show("请选择删除项目后删除");			//弹出提示
        return;
    }
    else
    {
        string strsql = "delete from tb_Lesson where LessonName='" + ListBox1.SelectedItem.Text 
+ "'";												//删除指定的信息
        BaseClass.OperateData(strsql);					//执行SQL语句
        Response.Write("<script>alert('删除成功');location='Subject.aspx'</script>");
    }
}

 

创作不易 觉得有帮助请点赞关注收藏~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/409236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS渐变背景看这一篇就够了

CSS渐变背景看这一篇就够了 在我们自己设计网页的时候&#xff0c;为了好看美观&#xff0c;颜色可谓是最让人头疼的一部分。尤其是在配色上又找不到一些好看的网站。今天我就来记录一些好看的渐变式背景&#xff0c;和一些常用的颜色网站。 CSS 渐变使可以显示两种或多种指定…

Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法

目录 第一步&#xff1a;lintOnSave&#xff1a;false 第二步&#xff1a;修改package.json中的配置 最后一步&#xff1a; 使用Vue Admin Template 二次开发是一件非常愉悦的事情&#xff0c;可是它里面的eslint真的是十分恶心人啊&#xff0c;对此我找了很多方法都没有解决…

浏览器强缓存与协商缓存详解以及实践

"我这边把代码更新上服务器了&#xff0c;你那边看一下呢?" "我这边还有这个问题&#xff0c;你改没改哦?" "我改了啊&#xff0c;不信你看我代码......噢&#xff0c;可能是浏览器缓存问题&#xff0c; 你F5刷新一下试试&#xff0c;如果不行 就Ct…

超星章节内ppt课件下载

超星章节内课件下载 欢迎访问个人博客&#xff1a;www.xuanworld.top 前言 ​ 一般来说&#xff0c;如果老师设置超星学习通章节内的ppt加密&#xff0c;那么ppt是无法下载的&#xff0c;超星不会提供下载接口&#xff0c;但是我们可以通过网络抓包的方式来截取到pdf&#x…

vue-router控制台异常:Uncaught (in promise) Error: Redirected when going from “/“ to “/foo“

qian kun微前端在子应用的路由配置中添加了一个全局前置导航守beforeEach&#xff0c;在前置导航守卫中调用next方法时重写了路由的path&#xff0c;结果控制台每次在路由跳转时都会报异常&#xff0c;但是不影响功能。 这里&#xff0c;我们将这个场景从微前端摘出来&#xf…

uniapp登录拦截器(未登录点击其他地方跳转登录页)

项目场景&#xff1a; 例如&#xff1a;客户要求用户在未登录的情况下&#xff0c;用户只可以在底部导航栏操作&#xff0c;点击其他的的功能都要跳转到登录页面。 uni.addInterceptor拦截器 是uni-app官网提供的拦截器&#xff0c;可以利用它来实现登录拦截器&#xff0c;用户…

vue3+pinia+vuerouter4动态路由菜单

文章目录前言一、用户权限和菜单列表数据二、pinia存储数据状态共享1.创建存储用户详情的user.ts文件2.创建存储用户菜单和权限的menus.ts文件三、设置动态路由1.在router文件夹下面创建routers.ts文件2.设置前置路由守卫3.左侧导航菜单前言 最近在做一个通用后台管理系统的框架…

35.JavaScript对象和数组的解构赋值基础详解、let陷阱、函数参数解构

文章目录35.JavaScript对象和数组的解构赋值数组解构解构不改变原数组忽略数组元素可迭代对象使用解构赋值给任何变量与.entries()方法结合与Map结合变量交换多余的元素对象解构属性变量映射默认值多余的属性let陷阱多层解析函数参数解析总结35.JavaScript对象和数组的解构赋值…

HTML使用Element-UI制作管理系统页面(无需脚手架以及创建vue工程)

HTML正常使用Element-UI前言尝试经历设计附件前言 入职培训到Web前端后布置了一个制作管理系统前端页面的任务&#xff0c;任务要求包含&#xff1a; 1.页面的布局主要为左侧导航菜单栏&#xff0c;右侧为信息展示栏&#xff0c;要体现嵌套 2.点击菜单栏切换右侧信息展示时左侧…

前端在项目中使用mockjs模拟数据的增删改查

背景 在项目开发时&#xff0c;会存在前端界面已经画好了但是后端接口还在开发的情况&#xff0c;此时前端可以先根据接口文档明确自己需要的字段&#xff0c;然后使用mock模拟后端接口进行调试 安装 npm install mockjs 使用 1. 创建vue项目之后&#xff0c;新建一个mock…

基于SpringBoot的校园疫情防控系统设计与实现

1.概述 校园疫情防控系统的开发运用java技术、springboot框架&#xff0c;MIS的总体思想&#xff0c;以及Mysql等技术的支持下共同完成了该系统的开发&#xff0c;实现了校园疫情防控管理的信息化&#xff0c;使用户体验到校园疫情防控管理&#xff0c;管理员管理操作将更加方…

使用 el-table 实现树形数据懒加载、点击行展开、每次只展示一条数据(大类)以及自定义表格合计值

1. 使用 el-table 实现树形数据懒加载 实现必需条件&#xff1a; lazy :load“loadNode” :tree-props“{ children: ‘children’, hasChildren: ‘hasChildren’ }” 注意&#xff1a;特别是第3条&#xff0c;后端接口必须传给你"hasChildren"(名字可以不一样)…

Vue3的vue-router超详细使用

从零开始搭建Vue3环境&#xff08;vitetsvue-router&#xff09;&#xff0c;手拉手做一个router项目搭建vue3环境vue-router入门&#xff08;宝宝模式&#xff09;vue-router基础&#xff08;青年模式&#xff09;一。动态路由匹配1.带参数的动态路由匹配2.捕获所有路由或404 …

uniapp项目中引入vant-Weapp(局部全局都有 史上最详细的方法)

1.先在根目录创建wxcomponents文件夹 2.打开 https://github.com/youzan/vant-weapp 下载最新的vant-Weapp 3.把我们下好的文件vant-weapp里面只留下dist其余的可以全部删掉&#xff0c;然后把vant-weapp放到 wxcomponents里面 4.在App.vue引入vant样式 import /wxcomponents…

蓝桥杯web开发-5道模拟题让你信心满满

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域新星创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

最好的Vue组件库之Vuetify的入坑指南(持续更新中)

目录 安装Vuetify 文档结构 快速入门 特性 样式和动画 首先先声明&#xff0c;个人不是什么很牛逼的大佬&#xff0c;只是想向那些想入坑Vuetify的前端新手或者嫌文档太长不知如何入手的人提供一些浅显的建议而已&#xff0c;能让你们稍微少走一些弯路就是本文的目的。我其实也…

『从零开始学小程序』媒体组件video组件

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位喜欢写作&#xff0c;计科专业大三菜鸟 &#x1f3e1;个人主页&#xff1a;starry陆离 &#x1f552;首发日期&#xff1a;2022年9月15日星期四 如果文章有帮到你的话记得点赞&#x1f44d;收藏&#x1f497;支持一下哦 『…

Vue结合高德地图实现HTML写自定义信息弹窗

最近在写项目的时候有个需求就是根据点击地图上的点展示对应的信息&#xff0c;弹窗看着还挺花哨的。我在高德地图官网上还有各大平台找了如何自定义弹窗&#xff0c;可给出的大多数都是通过JS写HTML结构&#xff0c;我感觉这种不仅不好布局&#xff0c;而且可读性和维护性都不…

客户端会话跟踪技术 Cookie 浅谈

文章目录前言为什么之前浏览器和服务器不支持数据共享&#xff1f;会话跟踪技术Cookie的概念Cookie的工作流程Cookie的基本使用Cookie原理分析Cookie的存活时间Cookie存储中文前言 用户打开浏览器&#xff0c;第一次访问 Web 服务器资源时&#xff0c;会话建立&#xff0c;直到…

富文本编辑器Quill 介绍及在Vue中的使用方法

在Web开发中&#xff0c;富文本编辑器是不可或缺的一个功能组件&#xff0c;掌握少量基础语法就能让一篇文章实现较为不错的排版效果&#xff0c;即见即所得。 目前市场上已提供大量集成富文本编辑器的包&#xff0c;Quill 作为其中一个&#xff0c;以简单、易上手特点&#x…