맥OS에서 AWS RDS와 프로젝트를 연결하는 방법입니다.
저는 .NET Framework 4.7.1 / MariaDB / AWS를 사용했습니다.
1. 프로젝트의 맨 아래쪽에 있는 Web.config의 appSetting 부분을 이렇게 수정해줍니다.
<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="webpages:Enabled" value="false"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
<add key="conStr" value="server=본인RDS주소(예시:~~ap-northeast-2.rds.amazonaws.com);database=DB이름;uid=DB로그인아이디;pwd=비밀번호" />
</appSettings>
2. Rider 프로젝트 아래쪽에 위치한 NuGet을 클릭하고,
My라고 검색창에 쳐서 Mysql.Data와 MysqlConnector를 설치해줍니다 (해당 패키지 클릭후 오른쪽마우스->Install 클릭)
3. 그리고 이제 DB연결 Helper를 만들어줍니다.
using System.Configuration;
using System.Data;
using MySql.Data.MySqlClient;
namespace atelier.DAL
{
public class DAL
{
private static MySqlConnection conn = new MySqlConnection(ConfigurationManager.AppSettings["conStr"].ToString());
public static DataTable mList()
{
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = string.Format("SELECT * FROM member");
cmd.CommandType = CommandType.Text;
MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, "member");
conn.Close();
return ds.Tables[0];
}
}
}
4. HomeController에 추가해줍니다.
public List<Admin> ConvertDataTableToModel(DataTable dt)
{
List<Admin> models = new List<Admin>();
foreach (DataRow row in dt.Rows)
{
Admin member = new Admin();
member.Id = (string)row["member_id"];
models.Add(member);
}
return models;
}
[HttpGet]
public ViewResult AdminLogin()
{
System.Data.DataTable member = DAL.DAL.mList();
List<Admin> boardModel = ConvertDataTableToModel(member);
ViewBag.mlist = boardModel;
return View(boardModel);
}
5. 리스트에 쓸 모델 파일도 만들어줍니다. Models에 Admin.cs파일을 추가해 간단하게 아이디만 불러오는 테스트 용도로 씁니다.
public class Admin
{
public string Id { get; set; }
}
6. View페이지에서 아래와같이 불러와서 DB연동이 잘 되었는지 테스트해주면 됩니다.
@using System.Data
@using atelier.Models
@model List<Admin>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div>
@foreach(var item in Model){
@item.Id
}
</div>
</body>
</html>
728x90
'Learning > .NET' 카테고리의 다른 글
[Rider] C#프로젝트 초기 설정: 호스트주소 변경 (0) | 2023.04.16 |
---|---|
Viewbag과 Model의 차이 (0) | 2023.01.11 |