C# ASP.NET Core开发学生信息管理系统(三)

随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP.NET Core也应运而生。本文主要利用ASP.NET Core开发一个学生管理系统为例,简述ASP.NET Core开发的常见知识点,前两篇文章做了登录功能和主页面功能,本文继续分享学生信息页面的增删改查功能。仅供学习分享使用,如有不足之处,还请指正。

涉及知识点

开发学生管理系统,涉及知识点,如下所示:

创建模型

如果要对学生进行管理,则首先需要创建学生模型,如下所示:

namespace SMS.Models
{
    public class Student
    {
        /// <summary>
        /// 唯一标识
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 学号
        /// </summary>
        public string No { get; set; }

        /// <summary>
        /// 学生名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 年纪
        /// </summary>
        public int Age { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public Boolean Sex { get; set; }

        /// <summary>
        /// 专业
        /// </summary>
        public string Dept { get; set; }

        /// <summary>
        /// 年级
        /// </summary>
        public string Grade { get; set; }

        /// <summary>
        /// 班级
        /// </summary>
        public string Class { get; set; }
    }
}

创建控制器

学生控制器(StudentController),如下所示:

namespace SMS.Controllers
{
    public class StudentController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        private DataContext dataContext;

        public StudentController(ILogger<HomeController> logger, DataContext context) {
            _logger = logger;
            dataContext = context;
        }

        /// <summary>
        /// 学生信息首页
        /// </summary>
        /// <returns></returns>
        public IActionResult Index()
        {
            return View();
        }

        /// <summary>
        /// 获取学生信息
        /// </summary>
        /// <param name="Name"></param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Query(string Name) {
            var students = new List<Student>();
            if (string.IsNullOrEmpty(Name))
            {
                students = dataContext.Students.ToList();

            }
            else {
                students = dataContext.Students.Where(r => r.Name.Contains(Name)).ToList();
            }

            return Json(students);
        }

        /// <summary>
        /// 新增
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IActionResult Add() {
            return View();
        }

        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IActionResult Edit(int id) {
            var student = dataContext.Students.FirstOrDefault((s) => s.Id == id);
            return View(student);
        }

        /// <summary>
        /// 新增保存
        /// </summary>
        /// <param name="student"></param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Save(Student student) {
           dataContext.Students.Add(student);
            dataContext.SaveChanges();
            if (student.Id > 0)
            {
                return Json("Success");
            }
            else {
               return Json("Failure");
            }
        }

        /// <summary>
        /// 编辑保存
        /// </summary>
        /// <param name="student"></param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Save2(Student student) {
            var id = student.Id;
            if (id == 0)
            {
                //新增
                return Save(student);
            }
            else {
                var tmp = dataContext.Students.FirstOrDefault(s => s.Id == id);
                if (tmp != null) {
                    tmp.Name = student.Name;
                    tmp.Age = student.Age;
                    tmp.Class = student.Class;
                    tmp.Dept = student.Dept;
                    tmp.Sex = student.Sex;
                    tmp.No = student.No;
                    int num = dataContext.SaveChanges();
                    if (num > 0)
                    {
                        return Json("Success");
                    }
                    else {
                        return Json("Failure");
                    }
                }
                return Json("Error");
            }
        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Delete(int id) {
            var tmp = dataContext.Students.FirstOrDefault(s => s.Id == id);
            if (tmp != null)
            {
                dataContext.Students.Remove(tmp);
                int num = dataContext.SaveChanges();
                if (num > 0)
                {
                    return Json("Success");
                }
                else
                {
                    return Json("Failure");
                }
            }
            return Json("Error");
        }
    }
}

创建视图

视图主要分为新增,查询,修改三个视图,如下所示:

1. 查询视图

@{
    Layout = null;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <link rel="stylesheet" type="text/css" href="/css/reset.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/text.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/grid.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/layout.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/nav.css" media="screen" />
    <!--[if IE 6]><link rel="stylesheet" type="text/css" href="css/ie6.css" media="screen" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" type="text/css" href="css/ie.css" media="screen" /><![endif]-->
    <link href="/css/table/demo_page.css" rel="stylesheet" type="text/css" />
    <!-- BEGIN: load jquery -->
    <script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/jquery-ui/jquery.ui.core.min.js"></script>
    <script src="js/jquery-ui/jquery.ui.widget.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui/jquery.ui.accordion.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui/jquery.effects.core.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui/jquery.effects.slide.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui/jquery.ui.mouse.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui/jquery.ui.sortable.min.js" type="text/javascript"></script>
    <script src="js/table/jquery.dataTables.min.js" type="text/javascript"></script>
    <!-- END: load jquery -->
    <script type="text/javascript" src="js/table/table.js"></script>
    <script src="js/setup.js" type="text/javascript"></script>
    <script type="text/javascript">
        var timer; //监听器
        var winopen;  //B页面的打开事件
        //判断子窗口是否关闭,关闭刷新页面
        function IfWindowClosed() {
            //判断B页面打开事件
            if (winopen.closed == true) {
                //执行A页面的相关方法操作
                query();
                //关闭监听器
                window.clearInterval(timer);
            }
        }
        $(document).ready(function () {
            query();
            //查询按钮绑定事件
            $("#btnQuery").click(function () {
                query();
            });
            $("#btnAdd").click(function () {
                var url = "Student/Add";
                winopen = window.open(url, '_target', "width=400,height=450,left=400,top=300");
                //打开监听器
                timer = window.setInterval("IfWindowClosed()", 500);
            });
            $("#btnEdit").click(function () {
                var id = $("input[name='sckb']:checked").val();
                var url = "Student/Edit/" + id;
                winopen = window.open(url, '_target', "width=400,height=450,left=400,top=300");
                //打开监听器
                timer = window.setInterval("IfWindowClosed()", 500);
            });
            $("#btnDelete").click(function () {
                var id = $("input[name='sckb']:checked").val();
                if (id == null || id == "") {
                    alert("没有选择需要删除的项");
                } else {
                    if (confirm("确定要删除吗?")) {
                        var url = "/Student/Delete/"+id;

                        $.post(
                            url,
                            {

                            },
                            function (data, status) {
                                //debugger;
                                if (status == "success") {
                                    if (data == "Success") {
                                        query();
                                        alert("删除成功");
                                    } else {
                                        window.alert(data);
                                    }
                                } else {
                                    window.alert("访问异常");
                                }
                                console.log("数据: \n" + data + "\n状态: " + status);
                            }
                        );
                    }
                }
            });
        });
        function query() {
            var url = "/Student/Query";
            $.post(
                url,
                {
                    Name: $("#Name").val()
                },
                function (data, status) {
                    //debugger;
                    console.log("数据: \n" + data + "\n状态: " + status);
                    $("#student tbody").empty();
                    //初始化Table
                    $.each(data, function (n, item) {
                        var rowstyle = "odd gradeA";
                        if (n % 2 == 0) {
                            rowstyle = "even gradeA";
                        }
                        var row = "<tr class=\"" + rowstyle + "\"><td><input type='checkbox' name=\"sckb\" id='sckb" + item.id + "' value='" + item.id + "' onclick='javascript:chkClick(event)' /></td><td>" + item.no + "</td><td>" + item.name + "</td><td>" + item.age + "</td><td>" + (item.sex==true?"男":"女") + "</td><td>" + item.dept + "</td><td>大" + item.grade + "</td><td>" + item.class + "班</td></tr>";
                        $("#student tbody").append(row);
                    });
                }
            );
            $('.datatable').dataTable();
        }

        function chkClick(e) {

            if ($(e.target).prop("checked")) {
                var id = $(e.target).val();
                $(e.target).parent().parent().css("background", "lightblue");
                $("input[name='sckb']").each(function (index, item) {//
                    debugger;
                    if ($(item).val() != id) {
                        $(item).prop("checked", false);
                        $(item).parent().parent().css("background", "none");
                    }
                });
            }
        }
    </script>
</head>
<body>
    <div class="container_12">
        <div class="grid_10">
            <div class="box round first grid">
                <h2>学生信息查询</h2>
                <div>
                    <span>姓名</span><input type="text" id="Name" name="Name" />
                    <button class="btn btn-blue" id="btnQuery"><span></span>Query</button>
                    <button class="btn btn-blue" id="btnAdd"><span></span>Add</button>
                    <button class="btn btn-blue" id="btnEdit"><span></span>Edit</button>
                    <button class="btn btn-blue" id="btnDelete"><span></span>Delete</button>
                </div>
                <div class="block">
                    <table class="data display datatable" id="student">
                        <thead>
                            <tr>
                                <th>选择</th>
                                <th>学号</th>
                                <th>姓名</th>
                                <th>年龄</th>
                                <th>性别</th>
                                <th>专业</th>
                                <th>年级</th>
                                <th>班级</th>
                            </tr>
                        </thead>
                        <tbody>

                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

2. 新增视图

新增视图,主要用于创建学生信息,如下所示:

@{
    Layout = null;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>学生信息管理系统</title>
    <link rel="stylesheet" type="text/css" href="/css/reset.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/text.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/grid.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/layout.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/nav.css" media="screen" />
    <!--[if IE 6]><link rel="stylesheet" type="text/css" href="css/ie6.css" media="screen" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" type="text/css" href="css/ie.css" media="screen" /><![endif]-->
    <link href="/css/fancy-button/fancy-button.css" rel="stylesheet" type="text/css" />
    <!--Jquery UI CSS-->
    <link href="/css/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
    <!-- BEGIN: load jquery -->
    <script src="/js/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="/js/jquery-ui/jquery.ui.core.min.js"></script>
    <script src="/js/jquery-ui/jquery.ui.widget.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.accordion.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.core.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.slide.min.js" type="text/javascript"></script>
    <!-- END: load jquery -->
    <!--jQuery Date Picker-->
    <script src="/js/jquery-ui/jquery.ui.widget.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.datepicker.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.progressbar.min.js" type="text/javascript"></script>
    <!-- jQuery dialog related-->
    <script src="/js/jquery-ui/external/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.mouse.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.draggable.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.position.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.resizable.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.dialog.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.core.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.blind.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.explode.min.js" type="text/javascript"></script>
    <!-- jQuery dialog end here-->
    <script src="/js/jquery-ui/jquery.ui.accordion.min.js" type="text/javascript"></script>
    <!--Fancy Button-->
    <script src="/js/fancy-button/fancy-button.js" type="text/javascript"></script>
    <script src="/js/setup.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(document).ready(function () {
            //$('input[type="radio"]').fancybutton();
            $("#btnSave").click(function () {
                save();
            });
        });
        function save() {
            var url = "/Student/Save";
            //alert($("input[name = 'Sex']:checked").val());
            var sex =Boolean(parseInt($("input[name = 'Sex']:checked").val()));
            //debugger;
            $.post(
                url,
                {
                    No:$("#No").val(),
                    Name: $("#Name").val(),
                    Age: $("#Age").val(),
                    Sex: sex,
                    Dept: $("#Dept").val(),
                    Grade: $("#Grade").val(),
                    Class: $("#Class").val(),
                },
                function (data, status) {
                    //debugger;
                    if (status == "success") {
                        if (data == "Success") {
                            window.close();
                        } else {
                            window.alert(data);
                        }
                    } else {
                        window.alert("访问异常");
                    }
                    console.log("数据: \n" + data + "\n状态: " + status);
                }
            );
        }
    </script>
</head>
<body>
    <div class="container_12">
        <div class="grid_12">
            <div class="box round first fullpage">
                <h2>新增学生信息</h2>
                <div class="block ">
                    <table class="form">
                        <tr>
                            <td class="col1">
                                <label>学号</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="No" name="No" />
                            </td>
                        </tr>
                        <tr>
                            <td class="col1">
                                <label>姓名</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="Name" name="Name" />
                            </td>
                        </tr>
                        <tr>

                            <td class="col1">
                                <label>年龄</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="Age" name="Age" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>性别</label>
                            </td>
                            <td>
                                <input type="radio" name="Sex" id="Male" value="1" />男
                                <input type="radio" name="Sex" id="Female" value="0" />女
                            </td>
                        </tr>
                        <tr>

                            <td class="col1">
                                <label>专业</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="Dept" name="Dept" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>年级</label>
                            </td>
                            <td>
                                <select id="Grade" name="Grade">
                                    <option value="一">一年级</option>
                                    <option value="二">二年级</option>
                                    <option value="三">三年级</option>
                                    <option value="四">四年级</option>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>班级</label>
                            </td>
                            <td>
                                <select id="Class" name="Class">
                                    <option value="一">一班</option>
                                    <option value="二">二班</option>
                                    <option value="三">三班</option>
                                    <option value="四">四班</option>
                                    <option value="五">五班</option>
                                    <option value="六">六班</option>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <button class="btn btn-blue" id="btnSave">Save</button>
                                <button class="btn btn-grey" type="reset" name="Reset" id="Reset">Reset</button>
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

3. 编辑视图

编辑视图,主要用于修改学生信息,与新增视图相像,存在略微不同,如下所示:

@{
    Layout = null;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>学生信息管理系统</title>
    <link rel="stylesheet" type="text/css" href="/css/reset.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/text.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/grid.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/layout.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/nav.css" media="screen" />
    <!--[if IE 6]><link rel="stylesheet" type="text/css" href="css/ie6.css" media="screen" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" type="text/css" href="css/ie.css" media="screen" /><![endif]-->
    <link href="/css/fancy-button/fancy-button.css" rel="stylesheet" type="text/css" />
    <!--Jquery UI CSS-->
    <link href="/css/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
    <!-- BEGIN: load jquery -->
    <script src="/js/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="/js/jquery-ui/jquery.ui.core.min.js"></script>
    <script src="/js/jquery-ui/jquery.ui.widget.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.accordion.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.core.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.slide.min.js" type="text/javascript"></script>
    <!-- END: load jquery -->
    <!--jQuery Date Picker-->
    <script src="/js/jquery-ui/jquery.ui.widget.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.datepicker.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.progressbar.min.js" type="text/javascript"></script>
    <!-- jQuery dialog related-->
    <script src="/js/jquery-ui/external/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
    <script src="js/jquery-ui/jquery.ui.mouse.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.draggable.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.position.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.resizable.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.ui.dialog.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.core.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.blind.min.js" type="text/javascript"></script>
    <script src="/js/jquery-ui/jquery.effects.explode.min.js" type="text/javascript"></script>
    <!-- jQuery dialog end here-->
    <script src="/js/jquery-ui/jquery.ui.accordion.min.js" type="text/javascript"></script>
    <!--Fancy Button-->
    <script src="/js/fancy-button/fancy-button.js" type="text/javascript"></script>
    <script src="/js/setup.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(document).ready(function () {
            //$('input[type="radio"]').fancybutton();
            $("#btnSave").click(function () {
                save();
            });
        });
        function save() {
            var url = "/Student/Save2";
            var sex = Boolean(parseInt($("input[name = 'Sex']:checked").val()));
            $.post(
                url,
                {
                    Id: $("#Id").val(),
                    No:$("#No").val(),
                    Name: $("#Name").val(),
                    Age: $("#Age").val(),
                    Sex: sex,
                    Dept: $("#Dept").val(),
                    Grade: $("#Grade").val(),
                    Class: $("#Class").val(),
                },
                function (data, status) {
                    //debugger;
                    if (status == "success") {
                        if (data == "Success") {
                            window.close();
                        } else {
                            window.alert(data);
                        }
                    } else {
                        window.alert("访问异常");
                    }
                    console.log("数据: \n" + data + "\n状态: " + status);
                }
            );
        }
    </script>
</head>
<body>
    <div class="container_12">
        <div class="grid_12">
            <div class="box round first fullpage">
                <h2>编辑学生信息</h2>
                <div class="block ">
                    
                    <input type="hidden" name="Id" id="Id" value="@Model.Id" />
                    <table class="form">
                        <tr>
                            <td class="col1">
                                <label>学号</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="No" name="No" value="@Model.No" />
                            </td>
                        </tr>
                        <tr>
                            <td class="col1">
                                <label>姓名</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="Name" name="Name" value="@Model.Name" />
                            </td>
                        </tr>
                        <tr>

                            <td class="col1">
                                <label>年龄</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="Age" name="Age" value="@Model.Age" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>性别</label>
                            </td>
                            <td>
                                <input type="radio" name="Sex" id="Male" value="1" @(Model.Sex?"checked":"") />男
                                <input type="radio" name="Sex" id="Female" value="0" @(Model.Sex?"":"checked") />女
                            </td>
                        </tr>
                        <tr>

                            <td class="col1">
                                <label>专业</label>
                            </td>
                            <td class="col2">
                                <input type="text" id="Dept" name="Dept" value="@Model.Dept"  />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>年级</label>
                            </td>
                            <td>
                                <select id="Grade" name="Grade">
                                    @{ var grades = new string[4] { "一", "二", "三", "四" };
                                        foreach (var grade in grades)
                                        {
                                            if (Model.Grade.Equals(grade))
                                            {
                                                <option value="@grade" selected><span>@grade</span>年级</option>
                                            }
                                            else
                                            {
                                                <option value="@grade"><span>@grade</span>年级</option>
                                            }

                                        }
                                    }
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>班级</label>
                            </td>
                            <td>
                                <select id="Class" name="Class">
                                    @{ var Classes = new string[6] { "一", "二", "三", "四","五","六" };
                                        foreach (var Class in Classes)
                                        {
                                            if (Model.Class.Equals(Class))
                                            {
                                                <option value="@Class" selected=selected><span>@Class</span>班</option>
                                            }
                                            else
                                            {
                                                <option value="@Class"><span>@Class</span>班</option>
                                            }

                                        }
                                    }
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <button class="btn btn-blue" id="btnSave">Save</button>
                                <button class="btn btn-grey" name="Reset" id="Reset">Reset</button>
                            </td>
                        </tr>
                    </table>
                    
                </div>
            </div>
        </div>
    </div>
</body>
</html>

数据库集成上下文DataContext

在DataContext中,增加学生模型的集合,如下所示:

namespace SMS.Models
{
    public class DataContext:DbContext
    {
        public DbSet<User> Users { get; set; }

        public DbSet<Menu> Menus { get; set; }

        public DbSet<Role> Roles { get; set; }

        public DbSet<UserRole> UserRoles { get; set; }

        public DbSet<RoleMenu> RoleMenus { get; set; }

        /// <summary>
        /// 学生
        /// </summary>
        public DbSet<Student> Students { get; set; }

        public DataContext(DbContextOptions options) : base(options)
        {

        }
    }
}

构建数据

在数据库创建对应学生表,如下所示:

项目目录

关于项目的总体目录,如下所示:

 运行测试

在Visual Studio中运行示例代码,如下所示:

至此,学生信息系统系列文章已经完成,其他功能模块与学生信息管理大同小异,都是对数据的增删改查操作,不再单独赘述。本文旨在抛砖引玉,共同学习,一起进步。关于示例源码,可点击下载

关于JS中的Boolean

在本示例中,使用Javascript中的Boolean函数,关于Boolean函数,描述如下:

 注意:本示例中,性别的取法和转换。引用源码时,请注意。

备注

 元日【作者】王安石 【朝代】宋

爆竹声中一岁除,春风送暖入屠苏。

千门万户曈曈日,总把新桃换旧符。

一篇很完整、很不错的论文、希望你们喜欢 摘要 学生成绩管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数 据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析如此情况,我们使用Microsoft公司的visualstudio开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键词:sql2000,c#,数据一致性,信息管理系统。 Abstract:Student achievement management system is representative information management system (MIS) , whose development mainly consists of two aspects: building and maintain of backward database and development of foreward application program.To the former, we must build a database who has great data-consistence,great data-completion and good data-security. But to the later,that the application program has enough functions and is case to use is required. After analysing so-called condition, we decide to use visualstudio of Microsoft corporation, exploitation implement, utilizing the implement who provides all kinds of face to the object, especially the data window of intellectualized which is able to controlit by concise and convenient,first,we should build the systerm application prototype in a short time,then, carry out the system needing iteration , amending and improving unceasingly, until the consumer satisfied with the viable system which is formed. Key words:sql2000,c# , data window , information management system. 一、引言 1.1 项目开发背景 几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理.但手工管理具有效率底、易出错、对学校的管理提供决策信息较为困难等缺点.我校尽管部分学院或系已开出学生成绩管理系统,但开发的系统不具有通用性,所以我想借本次毕业设计之际,开发一个不仅适用本校各系而且适用于其它各校的通用高校学生成绩管理系统. 采用软件工程的指导方法,选用C/S模式设计的方案,应用SQL Server 2000数据库管理系统,C#程序设计语言,Visual Studio.NET 2003开发工具等开发出来的基于WINDOWS系列的学生学籍管理系统.该系统面向各部门和全体学生,实现对学生成绩情况、学籍情况等的计算机管理。系统支持学生查询自己的学籍信息和成绩信息,还可以修改自己的密码,而教师可以对学生的学籍信息和成绩信息进行添加、删除和修改等的操作,同时本系统支持报表的输出打印功能。减少了部门之间工作的中间环节,提高了跨部门管理的效率。 1.2 项目开发的目标 建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平.帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化. 1.3 项目提出的意义 现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力.在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替.如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率. 二、常用的软件开发方法 2.1 结构化系统开发方法 2.1.1 结构化系统开发的基本思想 用系统工程的思想和工程化的方法,按照用户至上的原则,采取结构化、模块化、自顶向下的方法对系统进行分析与设计。 2.1.2 结构化系统开发方法的特点 1.强调用户的参与。 2.深入调查研究。 3.使用结构化、模块化方法。 4.严格按照阶段进行。 5.开发过程工程化。 2.1.3 结构化系统开发方法的阶段划分 1、系统规划阶段 根据用户的系统开发要求,初步调查,明确问题,然后进行可行性研究。 2、系统分析阶段 系统分析阶段的主要任务是分析业务流程,分析数据与数据流程,提出新系统的逻辑方案。 3、系统设计阶段 系统时间阶段的主要任务是总体结构设计和模块设计。根据设计要求选择合适的软硬件设备,进行代码、用户界面、文件、数据库、网络结构的设计。 4、系统实施阶段 系统实施阶段的主要任务包括编程、操作人员培训以及数据准备,然后投入试运行。 5、系统运行阶段 系统运行阶段的主要任务是进行系统的日常运行管理、评价、审计工作。 2.2 原型开发方法 2.2.1 原型的概念 原型开发方法首先有用户提出开发要求,开发人员识别和归纳用户需求,根据识别、归纳的结果,构造出一个原型,然后同用户一起评价这个原型。如果根本不行,则重新构造原型;如果不满意,则修改原型,直到用户满意为此。 原型按照建立的目的不同可分为抛弃型原型和增量渐进型原型。 2.2.2 抛弃型原型 抛弃型原型主要用于验证软件需求以及设计方案和算法,这是当前使用较广泛的原型。 抛弃型原型开发模型如下:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老码识途呀

写作不易,多谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值