diff --git "a/\345\273\226\344\273\262\350\276\211/20260119.md" "b/\345\273\226\344\273\262\350\276\211/20260119.md" new file mode 100644 index 0000000000000000000000000000000000000000..5236eaf6cc06e21c12c03af194ee454eea5976ae --- /dev/null +++ "b/\345\273\226\344\273\262\350\276\211/20260119.md" @@ -0,0 +1,30 @@ +# 笔记 Sqlite数据库 +``` +1.安装两个包 +Microsoft.EntityFrameworkCore.Design 这个包是EFCore的核心包 +Microsoft.EntityFrameworkCore.Sqlite 这个包是Sqlite数据库的驱动包 + +命令: +dotnet add package Microsoft.EntityFrameworkCore.Sqlite +dotnet add package Microsoft.EntityFrameworkCore.Design + +2.创建数据库上下文: + +在Models文件夹中新建文件 +引用命名空间 Microsoft.EntityFrameworkCore +创建类,继承DbContext +配置固定队的连接字符串 protext overwrite void OnConfiguring() + +定义数据库表 public DbSet Vips{get;set;} + + + + +3.执行数据库迁移 +占位符 + +4.将迁移文件应用到数据库 +在控制类外部新建一个数据库自定义的类名 =new()类 + +5。在控制器中使用数据库上下文增删改查 +``` \ No newline at end of file diff --git "a/\345\273\226\344\273\262\350\276\211/20260121MVC\351\223\276\346\216\245\346\225\260\346\215\256\345\272\223.md" "b/\345\273\226\344\273\262\350\276\211/20260121MVC\351\223\276\346\216\245\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..3145d33b889ee942a9864279fd547050cbe96d18 --- /dev/null +++ "b/\345\273\226\344\273\262\350\276\211/20260121MVC\351\223\276\346\216\245\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,115 @@ +# 笔记 Sqlite数据库 + +第一阶段连接数据库(4步骤) +``` +1.安装两个包 +Microsoft.EntityFrameworkCore.Design 这个包是EFCore的核心包 +Microsoft.EntityFrameworkCore.Sqlite 这个包是Sqlite数据库的驱动包 + +命令: +dotnet add package Microsoft.EntityFrameworkCore.Sqlite +dotnet add package Microsoft.EntityFrameworkCore.Design + +2.创建数据库上下文: + +在Models文件夹中新建数据库文件 +引用命名空间 Microsoft.EntityFrameworkCore +引用命名空间 using System.Data.Common; +定义数据库表 public DbSet Vips{get;set;} +创建类,继承DbContext +配置固定队的连接字符串 protected override void OnConfiguring(DbContextOptionsBuilder(数据库上下文选项构造器) 形参){ +形参.UseSqlite("Data Source=想要的数据库名称.db;"); +} + +3.执行数据库迁移 +安装ef工具,dotnet tool install --global dotnet-ef + dotnet ef migrations add 首字母大写的任意一个名字 + +4.将迁移文件更新到数据库 + +dotnet ef database update + +可以先第一次运行,判断之前写的没错 + +第二阶段.让后端数据库显示到前端(三步骤) + +1.在主控制类下 创建无值数据库类 private readonly 数据库类型 变量名A=new 数据库类; + +2.在无参构造函数中(直接public加文件名),初始化实例数据库类,用AddRange方法为数据库添加初始数据 变量名A.类名.AddRange({new[]{new 类{},new 类{},new 类{}}); +添加完(只是在缓存里)执行保存:变量名A.SaveChangesAsync(); + +3.在视图方法中用ToList从数据库里取数据 +定义一个变量 var 变量名B=变量名A.表名.ToList() + +第三阶段.在控制器中使用数据库上下文增删改查(四步骤) + +### 标题Research: +在index页用表单,在后端用where和Contains方法 +注意点1 form中 action路径(/1/2) method="get" +注意点2 搜索框的input,要设置name值,前端页面中index方法的形参string值要和name值一样 + +用if判断搜索框是否为空 +if(!String.IsNullOrEmpty(形参)){ + 变量c=变量A.表名.Where(形参=>形参.属性.Contains(key)||形参.属性.Contains(key)) + return View(变量c); +} + + +### 标题Delete: + +在前端页面的删除a标签后加上id传到后端 +在删除方法中定义形参int接受前端传的id +定义变量C,用find方法找指定id的对象 +var obj=变量A.表名.Find(形参); +加入防空值判断 +if(obj== null){ + return NotFond() +} +return View(obj) +后端再把对象传到前端的删除页面 + +前端删除页面 +用model指定对象的类型(非强类型) +@model 类型文件完整目录 +然后直接传参显示 +@Model.属性名 +@Model.属性名 + +用两个a标签设置确认删除和取消删除, +确认删除标签带@Model.Id传给后端的DelSave方法 +取消删除直接跳转到index页面 + +后端的DelSave一样定义形参Id接收 +一样定义变量用Find指定对象 +一样添加若空值判断 +变量A.表名.Remove移除 +用变量A.SaveChangesAsync()保存 +return Redirect(地址) + +### Update +在index得编辑a标签路径加@Model.Id +写一个和删除一摸一样的前端方法将选中对象传回EditSave方法 +然后用Find找到选中对象,用变量B接收 +用 +指定对象.属性=选中对象.属性 +指定对象.属性=选中对象.属性 +进行替换完成后更新, +变量A.表名.Update(变量B) +更新后保存 +然后返回index视图 + + +### 标题Create 从前到后用form,从后到前用Add +定义最简单的Add方法和视图 +在Add页面制定对象类型(非强类型) +@model 类的完整路径 +用form向后端提交 +action=“控制器名称/addSave(添加方法)” +每个属性的input加上asp-for绑定属性 +然后有一个取消的a标签和submit类型的input + +在后端写AddSave方法(类型 形参名)接受Add页面传过来的对象 +用Add方法 变量A.表名.Add(形参名) +变量A.SaveChangesAsync() + +``` \ No newline at end of file diff --git "a/\345\273\226\344\273\262\350\276\211/20260122MVC\346\225\260\346\215\256\345\272\223CRUD.md" "b/\345\273\226\344\273\262\350\276\211/20260122MVC\346\225\260\346\215\256\345\272\223CRUD.md" new file mode 100644 index 0000000000000000000000000000000000000000..dc2cefe9be33aceba92e6d8f4c2aa93a58e9e1a2 --- /dev/null +++ "b/\345\273\226\344\273\262\350\276\211/20260122MVC\346\225\260\346\215\256\345\272\223CRUD.md" @@ -0,0 +1,29 @@ + # 笔记 +## 装2包 +``` +定义好类 +``` + +## 定义数据库上下文 +``` +1.在Model文件夹中新建cs,AppDbcontext,继承自DbContext类 +2.在控制文件中定义数据库表,public Dbset<类> 表名{get;set;} +3.配置链接字符串 protect override void OnConfiguring(DbContextOptionsBuilder 形参){ + 形参.UseSqlite("DataSource=数据库名.db") +} +``` + +## 执行数据库迁移 将迁移文件更新到数据库 +``` +1.dotnet ef migrations add 名字 +2.dotnet ef database update +``` + +## 用数据库做CRUD +``` +1,让数据库显示 +在控制文件定义数据库变量 private readonly 数据库类名 变量名 +然后在控制文件写一个控制文件名称的无参构造函数{变量名=new 数据库 类名} +然后写index方法,list=库变量.物类.Tolist(); +return +``` diff --git "a/\345\273\226\344\273\262\350\276\211/20260123.md" "b/\345\273\226\344\273\262\350\276\211/20260123.md" new file mode 100644 index 0000000000000000000000000000000000000000..dc2cefe9be33aceba92e6d8f4c2aa93a58e9e1a2 --- /dev/null +++ "b/\345\273\226\344\273\262\350\276\211/20260123.md" @@ -0,0 +1,29 @@ + # 笔记 +## 装2包 +``` +定义好类 +``` + +## 定义数据库上下文 +``` +1.在Model文件夹中新建cs,AppDbcontext,继承自DbContext类 +2.在控制文件中定义数据库表,public Dbset<类> 表名{get;set;} +3.配置链接字符串 protect override void OnConfiguring(DbContextOptionsBuilder 形参){ + 形参.UseSqlite("DataSource=数据库名.db") +} +``` + +## 执行数据库迁移 将迁移文件更新到数据库 +``` +1.dotnet ef migrations add 名字 +2.dotnet ef database update +``` + +## 用数据库做CRUD +``` +1,让数据库显示 +在控制文件定义数据库变量 private readonly 数据库类名 变量名 +然后在控制文件写一个控制文件名称的无参构造函数{变量名=new 数据库 类名} +然后写index方法,list=库变量.物类.Tolist(); +return +```