You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ASP.NET C# Web应用中使用ADO.NET和XML实现学生信息搜索

实现步骤

1. 存放XML文件

首先把你提供的XML内容保存为Graduates.xml,放到项目的App_Data目录下,这个目录默认不允许外部直接访问,安全性更高。

2. 编写前端页面(.aspx)

这里直接用独立的标签展示学生信息,你可以自由调整CSS样式做成毕业证书的排版:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GraduateSearch.aspx.cs" Inherits="YourNamespace.GraduateSearch" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>毕业证书查询</title>
    <style>
        /* 你可以自定义这里的样式做成毕业证书效果 */
        .certificate {
            width: 800px;
            padding: 50px;
            border: 10px solid #d4af37;
            margin: 30px auto;
            background: #fffdf5;
            font-family: "宋体", serif;
            display: none; /* 默认隐藏,查到结果再显示 */
        }
        .cert-title {
            font-size: 36px;
            text-align: center;
            font-weight: bold;
            margin-bottom: 40px;
        }
        .info-item {
            font-size: 20px;
            line-height: 2.5;
            margin: 10px 0;
        }
        .search-area {
            text-align: center;
            margin: 30px 0;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div class="search-area">
            <asp:TextBox ID="txtSearch" runat="server" placeholder="请输入学生姓名或ID" Width="300px" Height="30px" Font-Size="16px"></asp:TextBox>
            <asp:Button ID="btnSearch" runat="server" Text="查询" OnClick="btnSearch_Click" Height="35px" Font-Size="16px" />
            <br />
            <asp:Label ID="lblMsg" runat="server" ForeColor="Red"></asp:Label>
        </div>

        <!-- 毕业证书展示区域,所有字段独立展示,可自由调整排版 -->
        <div class="certificate" id="certificate" runat="server">
            <div class="cert-title">毕业证书</div>
            <div class="info-item">学生姓名:<asp:Label ID="lblStudentName" runat="server"></asp:Label></div>
            <div class="info-item">学号:<asp:Label ID="lblID" runat="server"></asp:Label></div>
            <div class="info-item">所学专业:<asp:Label ID="lblProgramme" runat="server"></asp:Label></div>
            <div class="info-item">荣誉等级:<asp:Label ID="lblHonours" runat="server"></asp:Label></div>
            <div class="info-item">教材费用结清:<asp:Label ID="lblBookPrice" runat="server"></asp:Label></div>
            <!-- 你还可以在这里加更多内容,比如学校名称、日期、盖章位置等 -->
        </div>
    </form>
</body>
</html>

3. 编写后台查询逻辑(.aspx.cs)

用LINQ to XML查询XML内容,逻辑简单易懂,适合新手:

using System;
using System.Linq;
using System.Xml.Linq;

namespace YourNamespace
{
    public partial class GraduateSearch : System.Web.UI.Page
    {
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            lblMsg.Text = "";
            certificate.Style["display"] = "none";
            
            // 校验输入不能为空
            if (string.IsNullOrWhiteSpace(txtSearch.Text.Trim()))
            {
                lblMsg.Text = "请输入学生姓名或ID后查询";
                return;
            }

            try
            {
                // 加载XML文件
                string xmlPath = Server.MapPath("~/App_Data/Graduates.xml");
                XDocument xDoc = XDocument.Load(xmlPath);
                
                // 查询匹配的学生:输入内容等于ID 或者 等于姓名,忽略前后空格
                var student = xDoc.Descendants("Student")
                    .FirstOrDefault(s => 
                        s.Element("ID").Value.Trim() == txtSearch.Text.Trim() 
                        || s.Element("Student_Name").Value.Trim() == txtSearch.Text.Trim());

                if (student != null)
                {
                    // 给各个字段赋值
                    lblID.Text = student.Element("ID").Value.Trim();
                    lblStudentName.Text = student.Element("Student_Name").Value.Trim();
                    lblHonours.Text = student.Element("Honours").Value.Trim();
                    lblBookPrice.Text = student.Element("Book_Price").Value.Trim();
                    lblProgramme.Text = student.Element("Programme").Value.Trim();
                    
                    // 显示毕业证书区域
                    certificate.Style["display"] = "block";
                }
                else
                {
                    lblMsg.Text = "未找到匹配的学生信息,请检查输入的姓名或ID是否正确";
                }
            }
            catch (Exception ex)
            {
                lblMsg.Text = "查询出错:" + ex.Message;
            }
        }
    }
}

注意事项

  • 把代码里的YourNamespace改成你自己项目的命名空间即可正常运行
  • 所有信息都是独立标签展示,你可以完全自由调整CSS样式、排版位置,实现你需要的毕业证书效果
  • 如果需要支持模糊查询,把查询条件里的==改成Contains()即可

内容的提问来源于stack exchange,提问作者Dreeam Deshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:06:10