diff --git "a/\344\276\257\345\207\244\351\230\263/20241223(\344\274\252\345\210\240\351\231\244).md" "b/\344\276\257\345\207\244\351\230\263/20241223(\344\274\252\345\210\240\351\231\244).md" new file mode 100644 index 0000000000000000000000000000000000000000..c1e684192c2a917dd70ca9492740086f4888e70e --- /dev/null +++ "b/\344\276\257\345\207\244\351\230\263/20241223(\344\274\252\345\210\240\351\231\244).md" @@ -0,0 +1,34 @@ +# 伪删除 +### 1. 伪删除的概念 +- 伪删除是一种数据管理技术,它将数据标记为"已删除"状态,而不是从数据库中物理删除。 +- 这种方法保留了数据的完整性,便于未来恢复或审计。 + +### 步骤 +1. 先在表中添加一条字段,并赋值 + + //表示是否被删除,默认值为false + public bool IsDeleted{get;set;}=false; + +2. 在控制器删除操作中,添加以下代码 + + //删除(伪删除) + public IActionResult Delete2(int id){ + var s=_db.Course.FirstOrDefault(x=>x.Id==id); + if(s==null){ + return NotFound(); + } + //需将remove改为update,如果删除了则修改IsDeleted的值 + s.IsDeleted=true; + _db.Course.Update(s); + _db.SaveChanges(); + return RedirectToAction("Index"); + } +3. 在控制器页面的action方法中,进行一下操作 + + //表示筛选没有被删除新的信息 + return View(_db.Course) ----> return View(_db.Course.Where(x=>x.IsDeleted!=true)); + +### 5. 数据库交互 +- 数据库查询时,使用 `isDeleted = false` 或 `isActive = true` 条件来排除已伪删除的数据。 +- 更新操作时,设置 `isDeleted = true` 而不是执行 `DELETE` 语句。 + diff --git "a/\344\276\257\345\207\244\351\230\263/20241225(\345\255\246\347\224\237\350\241\250).md" "b/\344\276\257\345\207\244\351\230\263/20241225(\345\255\246\347\224\237\350\241\250).md" new file mode 100644 index 0000000000000000000000000000000000000000..850582506d266e1c389bdecce6cf9cd2ef4c73e3 --- /dev/null +++ "b/\344\276\257\345\207\244\351\230\263/20241225(\345\255\246\347\224\237\350\241\250).md" @@ -0,0 +1,117 @@ +## 学生表 +### StudentController 控制器 +``` +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using StudentManger.Models; + +namespace StudentManger.Controllers +{ + public class StudentController : Controller + { + // 数据库 + private readonly StudentsContext _db; + + public StudentController() + { + _db = new StudentsContext(); + } + + // 显示学生列表 + public IActionResult Index() + { + var list = _db.Students.ToList(); + return View(list); + } + + // 新增学生 + public IActionResult Create() + { + return View(); + } + + [HttpPost] + public IActionResult Create(Students input) + { + _db.Students.Add(input); + _db.SaveChanges(); + return RedirectToAction("Index"); + } + + // 编辑学生 + public IActionResult Edit(int id) + { + var student = _db.Students.FirstOrDefault(x => x.Id == id); + return View(student); + } + + [HttpPost] + public IActionResult Edit(Students input) + { + var student = _db.Students.FirstOrDefault(x => x.Id == input.Id); + if (student == null) + { + return NotFound(); + } + student.Age = input.Age; + student.StudentName = input.StudentName; + _db.SaveChanges(); + return RedirectToAction("Index"); + } + + // 删除学生 + public IActionResult Delete(int id) + { + var student = _db.Students.FirstOrDefault(x => x.Id == id); + return View(student); + } + + public IActionResult DeleteConfirmed(int id) + { + var student = _db.Students.FirstOrDefault(x => x.Id == id); + if (student == null) + { + return NotFound(); + } + _db.Students.Remove(student); + _db.SaveChanges(); + return RedirectToAction("Index"); + } + } +} +``` + + +### Students 模型 +``` +namespace StudentManger.Models +{ + public class Students + { + public int Id { get; set; } + public int Age { get; set; } + public string StudentName { get; set; } + } +} +``` + + +### StudentsContext 数据库上下文 +``` +using Microsoft.EntityFrameworkCore; + +namespace StudentManger.Models +{ + public class StudentsContext : DbContext + { + public DbSet Students { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + base.OnConfiguring(optionsBuilder); + var connectionString = $"server=.;database=Studentjq;uid=sa;pwd=123456;TrustServerCertificate=true;"; + optionsBuilder.UseSqlServer(connectionString); + } + } +} +```