如何在ASP.NET/C#应用中读取并显示当前使用的数据库?
在ASP.NET/C#中读取ConnectionStrings并显示当前数据库
1. 确认appsettings.json配置结构
假设你的appsettings.json中ConnectionStrings节点如下:
{ "ConnectionStrings": { "RealApp": "Server=HP-WS10;Database=real_app;Trusted_Connection=True;" } }
2. 通过IConfiguration读取连接字符串
ASP.NET Core默认内置IConfiguration服务,可直接注入到控制器、视图组件或服务中:
using Microsoft.Extensions.Configuration; using System.Data.SqlClient; public class HomeController : Controller { private readonly IConfiguration _config; public HomeController(IConfiguration config) { _config = config; } public IActionResult Index() { // 读取指定名称的连接字符串 string connString = _config.GetConnectionString("RealApp"); // 解析连接字符串,提取服务器和数据库名(避免直接暴露完整连接串) var connBuilder = new SqlConnectionStringBuilder(connString); string dbDisplayText = $"当前环境:服务器[{connBuilder.DataSource}],数据库[{connBuilder.InitialCatalog}]"; // 传递到视图显示 ViewBag.CurrentDb = dbDisplayText; return View(); } }
3. 在视图中展示信息
如果是Razor视图,直接输出ViewBag中的内容:
<div class="env-info"> @ViewBag.CurrentDb </div>
4. 可选:强类型配置方式
如果偏好强类型管理配置,可创建配置类并注入:
步骤1:创建配置类
public class ConnectionSettings { public string RealApp { get; set; } }
步骤2:在Program.cs中注册配置
var builder = WebApplication.CreateBuilder(args); // 绑定ConnectionStrings节点到强类型类 builder.Services.Configure<ConnectionSettings>(builder.Configuration.GetSection("ConnectionStrings"));
步骤3:注入并使用
using Microsoft.Extensions.Options; public class HomeController : Controller { private readonly ConnectionSettings _connSettings; public HomeController(IOptions<ConnectionSettings> connSettings) { _connSettings = connSettings.Value; } public IActionResult Index() { var connBuilder = new SqlConnectionStringBuilder(_connSettings.RealApp); ViewBag.CurrentDb = $"当前环境:服务器[{connBuilder.DataSource}],数据库[{connBuilder.InitialCatalog}]"; return View(); } }
内容的提问来源于stack exchange,提问作者Paul_412
相关产品推荐
相关产品推荐

