首页 > 解决方案 > 为了使用我的 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 文件来定义连接字符串,是否应该定义命令等

标签: c#mysqlapiasp.net-core-mvc

解决方案


据我所知,如果你想使用 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();
        }
}

结果:

在此处输入图像描述


推荐阅读