c# - 为了使用我的 netcore api 连接到 Mysql,我应该使用 json 文件连接还是应该使用下面的代码
问题描述
using (var Connection = new MySqlConnection(ConnectionString))
{
Connection.Open();
using (var Command = new MySqlCommand(Command, Connection))
{
using (var executeReader = Command.ExecuteReader())
{
while (executeReader.Read())
{
ValuesList.Add(new BloodBankPro
{
key_id = executeReader.GetInt32(0),
FirstName = executeReader.GetString(1),
lastName = executeReader.GetString(2),
BloodType = executeReader.GetString(3),
age = executeReader.GetInt32(4),
Gender = executeReader.GetString(5)
});
}
}
}
}
为此,我每次都连接它,但我是否应该使用 JSON 文件来定义连接字符串,是否应该定义命令等
解决方案
据我所知,如果你想使用 ADO.NET 连接 mysql 数据库,我建议你可以将连接字符串放入 appsettings.json 文件中,而不是写在代码中。
这样做的好处是,如果您想修改连接字符串,您只需更改 appsettings.json 中的连接字符串值即可。
然后,如果您想获取连接字符串,可以将 IConfiguration 注入您的类中,然后用于 Configuration.GetConnectionString("DefaultConnection")
获取详细信息连接字符串。
更多细节,您可以参考以下示例:
Appsettings.json 示例:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-IdentityTestDemo-32EC7F23-BFDD-4025-8D9C-2394643F484B;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
使用依赖注入来获取控制器中的连接字符串,否则:
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IConfiguration _configuration;
public HomeController(ILogger<HomeController> logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}
public IActionResult Index()
{
var re = _configuration.GetConnectionString("DefaultConnection");
return View();
}
}
结果:
推荐阅读
- node.js - 高级调度程序 - Heroku - smtp 服务发送到电子邮件
- ruby - 为什么浮点数除以零不会在 Ruby 中引发异常?
- docker - Docker 卷和绑定
- c - Linux 套接字:有没有办法只接收来自特定环的数据包?
- reactjs - 在 ReactJS 中处理类似组件的最佳方法是什么?
- java - 选定的单选按钮取前一个的值
- sql - 在 SQL Server 的 WHERE 子句中按变量选择所有行
- pdf - 为什么一个 CID 号映射到一个 CMap 文件中的两个 UTF16 编码?
- python-3.x - PythonShell.py:27: RuntimeWarning: coroutine 'get_info' 从未等待 mpl.use('AGG')
- java - Spring BeanUtils、copyProperties 和应用操作