From 6be2c24c87e3a03390ef5db63b9b31fe54359c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=81=BF?= <2262917336@qq.com> Date: Mon, 16 Dec 2024 14:02:38 +0800 Subject: [PATCH] 20241216 --- ...05\346\225\260\346\215\256\345\272\223.md" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "\345\210\230\347\201\277/20241216-\350\277\236\346\216\245\345\256\236\351\231\205\346\225\260\346\215\256\345\272\223.md" diff --git "a/\345\210\230\347\201\277/20241216-\350\277\236\346\216\245\345\256\236\351\231\205\346\225\260\346\215\256\345\272\223.md" "b/\345\210\230\347\201\277/20241216-\350\277\236\346\216\245\345\256\236\351\231\205\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000..efd609f --- /dev/null +++ "b/\345\210\230\347\201\277/20241216-\350\277\236\346\216\245\345\256\236\351\231\205\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,70 @@ +## 连接实际数据库 + +### 数据库上下文初始化 +#### 使用[有参数]的方案 +1. 在Program.cs文件中添加连接数据库字符串 +```cs +var connectionString = $"Server=.;Database=MdBlog;uid=sa;pwd=123456;TrustServerCertificate=true"; + +builder.Services.AddDbContext(opt => +{ + opt.UseSqlServer(connectionString); +}); +builder.Services.AddScoped(); +``` +2. 在对应的Models文件中,不需要重写OnConfiguring的代码,只需要集成base的代码 +```cs +public BlogDbContext(DbContextOptions options) : base(options) +{ +} +``` + +#### 使用[无参数]的方案!!! +1. 在Program.cs文件中不需要填写任何的代码 +2. 在对应的Models文件中,需要有重写OnConfiguring的代码,继承base的代码则不再需要 +3. 将连接数据库的字符串代码写入重写OnConfiguring的代码中 +```cs +protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +{ + base.OnConfiguring(optionsBuilder); + + var connectionString = $"Server=.;Database=MdBlog;uid=sa;pwd=123456;TrustServerCertificate=true"; + optionsBuilder.UseSqlServer(connectionString); +} +``` + +### 连接数据库 +1. 在控制器代码中实例化数据库对象 +```cs +private readonly BlogDbContext _db; +public BlogsController() +{ + _db = new BlogDbContext(); +} +``` +2. 将原本的模拟数据库替换成实际数据库 +``` +Db.Blogs --> _db.Blogs +``` + - 如果改完之后出现`An unhandled exception occurred while processing the request.`的报错,则在主页面表示显示的代码后加上**ToList()** + ```cs + return View(_db.Blogs.ToList()); + ``` +3. 在每次修改(增删改)操作结束之后,都要进行保存,将内容保存到数据库 +```cs +_db.SaveChanges(); +``` + +## 打开sql快捷方式 +win+R services.msc + +## join方法 +是字符串方法,用于将一个数组或集合中的元素连接成一个单一的字符串 + +语法:string.Join("连接符", 字符串数组/集合/对象数组) + +```cs +List fruits = new List { "Apple", "Banana", "Cherry" }; +string result = String.Join(", ", fruits); +Console.WriteLine(result); // 输出: Apple, Banana, Cherry +``` \ No newline at end of file -- Gitee