前端
@{ Layout = null; } @model List<DomeCore.Models.Student> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="~/js/jquery-3.4.1.js"></script> </head> <body> <script> Stu_show(); //数据显示 function Stu_show() { $.ajax({ url: "/Home/Stu_Show", type: "post", dataType: "json", contentType: "application/json; charset=utf-8", success: function (data) { show(data); }, error: function (data) { alert("Error!"); } }) } //查询 function Stu_Sel() { var name = $("#Student_Name1").val(); if (name == "全部") { Stu_show(); $("#Student_Name1").val(""); } else { $.ajax({ url: "/Home/Stu_Sel", type: "get", data: { "Name": name }, dataType: "json", contentType: "application/json; charset=utf-8", success: function (data) { show(data); $("#Student_Name1").val(""); }, error: function (data) { alert("Error!"); } }) } } //删除 function Stu_Del(id) { $.ajax({ url: "/Home/Stu_Del", type: "Delete", data: { "ID": id }, success: function (data) { Stu_show(); }, error: function (data) { alert("Error!"); } }) } //添加和修改 function Stu_add() { var id = $("#Stu_ID").html(); var name = $("#Student_Name").val(); console.log(name); console.log(id); if (id != "") {//修改 $.ajax({ url: "/Home/Stu_Update", type: "Patch", data: { "ID": id, "Name": name }, success: function (data) { Stu_show(); $("#Student_Name").val(""); $("#Stu_ID").html(""); }, error: function (data) { alert("Error1!"); } }) } else {//添加 $.ajax({ url: "/Home/Stu_Add", type: "post", data: { "Name": $("#Student_Name").val() }, success: function (data) { Stu_show(); $("#Stu_ID").html(""); $("#Student_Name").val(""); }, error: function (data) { alert("Error2!"); } }) } } //显示修改数据 function ClickUpdate(id) { $.ajax({ url: "/Home/Stu_Sel_By_ID", type: "get", data: { "ID":id }, success: function (data) { $("#Stu_ID").html(data.id); $("#Student_Name").val(data.name); }, error: function (data) { alert("Error!"); } }) } //修改数据 function show(data) { $("#Stu_info_show").empty(); $.each(data, function (key, item) { $("#Stu_info_show").append('<p>' + item.id + ' ' + item.name + ' <input type="button" onclick="Stu_Del(' + item.id + ')" value="删除"/> <input type="button" onclick="ClickUpdate(' + item.id + ')" value="修改"/></p>'); }) } </script> <div> <h3>显示数据</h3> <div id="Stu_info_show"> </div> </div> <br /> <br /> <div> <h3 id="Stu_title">添加</h3> <span id="Stu_ID"></span><br /> <input id="Student_Name" name="Name" type="text" /> <input type="button" onclick="Stu_add()" value="确定" /> </div> <br /> <br /> <div> <h3>查询</h3> <input id="Student_Name1" name="Name" type="text" /> <input type="button" onclick="Stu_Sel()" value="查询" /> </div> </body> </html>
后
using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using DomeCore.Models; namespace DomeCore.Controllers { public class HomeController : Controller { private readonly IStudentRepository _studentrepository; public HomeController(IStudentRepository studentrepository) { _studentrepository = studentrepository; } public IActionResult Index() { return View(); } //添加 [HttpPost] public string Stu_Add(string Name) { Student stu = new Student() { Name=Name}; _studentrepository.Add(stu); return "1"; } //显示数据 [HttpPost] public JsonResult Stu_Show() { return Json(_studentrepository.Stu_show()); } //查询信息 [HttpGet] public JsonResult Stu_Sel(string Name) { return Json(_studentrepository.Stu_Sel(Name)); } //删除 [HttpDelete] public string Stu_Del(int ID) { if (_studentrepository.Delete(ID)!=null) { return "1"; } return "2"; } //修改 [HttpPatch] public string Stu_Update(string ID,string Name) { Student stu = new Student() {ID=int.Parse(ID),Name=Name }; Student s = _studentrepository.SelbyID(stu.ID); if (s != null) { _studentrepository.Update(stu); return "1"; } else { return "2"; } } //查询 [HttpGet] public Student Stu_Sel_By_ID(int ID) { return _studentrepository.SelbyID(ID); } } }
IStudentRepository接口(作用:操作方法)
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace DomeCore.Models { public interface IStudentRepository { List<Student> Stu_show(); List<Student> Stu_Sel(string name); Student Add(Student students); Student Update(Student updateStudent); Student Delete(int id); Student SelbyID(int id); } }
SQLStudentRepository类(作用:实现IStudentRepository接口方法)
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace DomeCore.Models { //使用EFcore来访问数据库,对数据进行相关的操作 public class SQLStudentRepository : IStudentRepository { //依赖注入 private readonly AppDbContext _context; public SQLStudentRepository(AppDbContext context) { _context = context; } //显示全部数据 public List<Student> Stu_show() { return _context.Students.ToList(); } //显示根据名称模糊查询数据 public List<Student> Stu_Sel(string name) { return _context.Students.Where(x=>x.Name.Contains(name)).ToList(); } //添加 public Student Add(Student students) { _context.Students.Add(students);//这个add为系统封装好了的方法,详情可以右键转定义 _context.SaveChanges(); return students; } //删除 public Student Delete(int id) { Student s = _context.Students.FirstOrDefault(x=>x.ID==id); if (s!=null) { _context.Students.Remove(s);//remove为core自带的 _context.SaveChanges(); } return s; } //修改 public Student Update(Student updateStudent) { Student s = _context.Students.FirstOrDefault(x=>x.ID==updateStudent.ID); s.Name = updateStudent.Name; _context.SaveChanges(); return updateStudent; } //按id查询 public Student SelbyID(int id) { return _context.Students.FirstOrDefault(x=>x.ID==id); } } }
AppDbContext(EFcore,代码先行)
using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace DomeCore.Models { public class AppDbContext:DbContext { //构造函数 public AppDbContext(DbContextOptions<AppDbContext> options):base(options) { } //添加种子数据 protected override void OnModelCreating(ModelBuilder modelBuilder) { //默认数据 modelBuilder.Entity<Student>().HasData( new Student {ID=1, Name="小向" }, new Student { ID=2,Name="小红"} ); } public DbSet<Student> Students { get; set; } } }
services.AddScoped<IStudentRepository,SQLStudentRepository>();//依赖注入声明