보통 DB Connection string은 appsettings.Development.json에 보관하여 이용한다.
"ConnectionStrings": {
"DefaultConnection": "Data Source=myserverip;Initial Catalog=mydb;User ID=myid;Password=mypwd;"
}
dbContext 방식으로 된 예제들은 많지만 ADO.NET으로 가져오려면 막막해진다.
물론 MS 문서에 버젓이 있지만 늘 그렇듯 생경한 느낌을 지울 수 없고 매번 바꿔대어 찾기가 힘들다.
https://learn.microsoft.com/ko-kr/aspnet/core/fundamentals/configuration/?view=aspnetcore-7.0
방식은 이러하다.
기본 프로젝트를 기준으로
private readonly IConfiguration _config; 를 선언해주고
IConfiguration config를 넘겨준 후
_config.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value 로 불러와서 사용하면 그만이다.
namespace Sample.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IConfiguration _config;
public HomeController(ILogger<HomeController> logger, IConfiguration config)
{
_logger = logger;
_config = config;
}
public IActionResult Index()
{
return View();
}
public IActionResult TicketList()
{
var dt = new DataTable();
string strConnection = _config.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;
using (var conn = new SqlConnection(strConnection))
{
conn.Open();
using (var cmd = new SqlCommand())
{
int nIDX = 100;
cmd.Connection = conn;
cmd.CommandText = @"
SELECT
*
FROM
IN_TABLENAME
WHERE
IDX > @idx
ORDER BY
IDX DESC
";
cmd.Parameters.AddWithValue("@idx", nIDX);
var reader = cmd.ExecuteReader();
dt.Load(reader);
}
}
ViewData["dt"] = dt;
return View();
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
'ASP.NET' 카테고리의 다른 글
쓰잘데기 없는 visual studio 2022 mouse wheel zoom in out 기능 날려버리기 (0) | 2022.12.29 |
---|---|
appsettings.json db connection string 값 가져오기 (0) | 2022.12.28 |
MVC 모델 비지니스 로직 결과를 json형태로 return해주기 (0) | 2022.12.19 |
.net DB First 방식 Scaffold-DbContext 오류 대응 (0) | 2022.12.05 |