mssql 테이블 생성

 

local 접속 후 데이터베이스 계정 로그인 안 될 때 

-> hannom.tistory.com/195 참고 

using System.Data.SqlClient;
using System.Data;
// using 등록해야 할 것들 


public IActionResult TicketList()
        {
            var dt = new DataTable();

            // 다른 곳에서 참조가 되면 남아 있을 수 있기 때문에 명시적으로 코딩 하는 게 좋음 (using)
            using (var conn = new SqlConnection("Server=DESKTOP-2H5KO6N\\SQLEXPRESS;Database = myweb;User ID = sa;password = sa1234"))
            {
                conn.Open();

                #region [sql 구문 작성법]
                /*
                 * string sta = "ddd"
                 WHERE 구문에서 a.status = sta + '%' 이런 식으로 쓰면 안 되는 이유 
                -> 사용자가 악의적으로 sta 변수에 OR '1' = '1' 같은 변수를 넣었을 경우 select 문으로 테이블의 모든 값을 조회할 수 
                있기 때문에 보안상으로도 올바르지 않음 (sql 해킹법으로 많이 쓰인다) 
                 */
                #endregion

                using (var cmd = new SqlCommand())
                {
                    string status = "In Progress";
                    cmd.Connection = conn;
                    cmd.CommandText = @"
                                        SELECT
	                                        A.ticket_id
	                                        ,A.title
	                                        ,A.status
                                        FROM 
	                                        t_ticket A
                                        WHERE 
	                                        A.status = @status 
                                        ";

                    cmd.Parameters.AddWithValue("@status", status);

                    var reader = cmd.ExecuteReader(); // READ 부분 select~ 
                    dt.Load(reader);
                    
                    //cmd.ExecuteNonQuery(); // CURD 처리 부분 (insert, update, delete) int 값 반환
                }
            }
            ViewData["Dt"] = dt;

            return View();
        }

- HomeController.cs

DB 연동 방법 다양함. appsettings.json에서 바로 연동해 주는 방법이 있고, 해당 페이지에서만 연동해 주는 방법이 있는데

해당 페이지에서만 연동하는 방법으로 HomeController에서 ticketList 페이지에서만 ticket 테이블 조회할 수 있도록 연동

 

 

@{ 
    var dt = ViewData["dt"] as System.Data.DataTable;
}

-- 해당하는 html의 cshtml 위에 데이터 테이블 전달 

  <tbody>
    @foreach(System.Data.DataRow row in dt.Rows)
    {
      <tr>
        <td>@row["status"]</td>
        <td>@row["title"]</td>
        <td>@row["ticket_id"]</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    }
</tbody>

Ticket.cshtml 

-> 데이터를 표시할 부분에 전달 

 

기본적인 데이터 구조는 이렇게 흘러감

MVC의 Model을 사용해서 쓰는 방법 필요

'Develop > ASP.NET CORE' 카테고리의 다른 글

05 - Database 연동  (0) 2021.03.04
04 - Layout 구성  (0) 2021.03.04
03 - 데이터 전달  (0) 2021.03.03
02 - MVC 프로젝트 생성  (0) 2021.03.03
01 - ASP.NET CORE 시작하기  (0) 2021.03.03