今天這篇先簡單講解一下,該如何從資料庫中取出資料到我們網站這邊
那由於我們資料庫中沒有任何資料,所以先在資料表TOPMenu中隨意新增一筆資料

接著我們回到vs中,打開Program.cs,加入以下的程式碼
這是一個DI注入資料庫物件的寫法,至於DI注入是什麼,後面會教
builder.Services.AddDbContext<KcgContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("KcgContext")));
這段程式碼必須放在var builder = WebApplication.CreateBuilder(args);
之後
其中AddDbContext<KcgContext>裡的KcgContext是要放你資料庫物件的名稱
builder.Configuration.GetConnectionString("KcgContext")則是放連線字串
這邊的這個寫法是說到appsettings.json中,抓KcgContext的內容
所以我們要在appsettings.json,寫好以下資訊
{
"ConnectionStrings": {
"KcgContext": "Data Source=127.0.0.1;Database=Kcg;Trusted_Connection=True;TrustServerCertificate=True;User ID=Kcg;Password=123456"
}
}
上面的就依自己實際情況改成你自己要的名稱,跟資料庫連線字串的內容
這邊如果設定完了,就可以把當初Code First那篇,先暫時擺在KcgContext.cs裡的連線字串拿掉了,並且要再加上另一個建構子,如下面
//加上這個
public KcgContext(DbContextOptions<KcgContext> options)
: base(options)
{
}
//這邊可以拿掉
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Data Source=127.0.0.1;Database=Kcg;Trusted_Connection=True;TrustServerCertificate=True;User ID=Kcg;Password=123456");
}
這樣相關Code First指令都可以正常運作
接著我們就要開始讀取我們剛剛新增的那筆資料過來
先到HomeController.cs中寫下以下程式
private readonly ILogger<HomeController> _logger;
private readonly KcgContext _kcgContext;
public HomeController(ILogger<HomeController> logger, KcgContext kcgContext)
{
_logger = logger;
_kcgContext = kcgContext;
}
這就是一個DI注入在Controller裡取得物件的寫法
如此我們就取到了資料庫的連線物件
接著我們將Index()改造一下,下面程式的意思是說,從TOPMenu
中撈取第一筆資料的Name欄位
最後return至結果,至於為什麼會放那麼多問號,下一篇文章會說明
public string? Index()
{
return _kcgContext.TOPMenu.FirstOrDefault()?.Name;
}
存個檔後,我們就可以取回剛剛我們在資料庫新增的那筆資料的內容
按下啟動不偵錯查看結果

可以看到網頁上就有"取資料"三個字被我們從資料庫撈出來了
以上就是從資料庫撈資料的事前設定
跟在Controller中要如何使用資料庫物件撈取資料