ASP.NET

ASP.NET / SqlConnection() 객체를 이용한 DBConnection / DB연결하기

universedevelope 2022. 8. 4. 17:45

● 환경 

   1. VisualStudio 2019

   2. C# 을 활용한 ASP.NET 웹 프로젝트 생성

   3. Web-Forms 템플릿

   4. MSSQL -> SQL Server -> SSMS 사용

   5. 연결할 수 있는 DataBase 구축(host 명, database 명, 계정명, 비밀번호) 확보

  

● 절차

   1. web.config -> connectionStrings 태그에 연결할 DataBase 설정

      ㄱ. add 태그 의 name 속성지정 : 사용자정의, DB 접속 간 불러올수 있는 변수 명이라고 해석합니다.

      ㄴ. add 태그 의 connectionString 속성 지정 : 4개

            - Data Source=『 이곳 』  ▶ 사용하시는 SQL Server 서버명(DESKTOP-어쩌구) 혹은 localhost 로 적으면 됩니다.

            - Initial Catalog=『 이곳 』 ▶ 사용하시는 SQL Server 서버명에 따른 DATABASE 명 을 그대로 적으면 됩니다.

            - User Id=『 이곳 』  ▶ 사용하시는 SQL Server 서버명에 따른 DATABASE 명에 접속하여 작업할 계정명(id)를 적으면 됩니다.

            - Password=『 이곳 』 ▶ 사용하시는 계정의 PASSWORD 를 그대로 적으시면 됩니다.

 

<configuration>
	<!-- 
    	이곳에 기존 설정 된 많은 코드가 있음
    -->
<connectionStrings>
		<add name="『연결시가져올이름(사용자정의 ex testData)』" connectionString="Data Source=『host명(SSMS접속시 서버명과 동일 혹은 localhost 사용)』; Initial Catalog=『연결할 데이터베이스 명』; User Id=『계정명』; Password=『비밀번호』$; Integrated Security=True;" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>

      

  2.  DBConnection 클래스 생성

       ㄱ. 주요 속성 : SqlConnection

       ㄴ. 주요 메소드 :

             - SqlConnection 을 반환하는             『  GetConnection() 』

             - Open 된 Connection 을 Close 하는 『  void Close() 』

       ※ 주의사항

            SqlConnection 객체는

            System.Data.SqlClient namespace 로 부터 제공받을 수 있으나,

            해당 namespace 는 Nuget 패키지 관리자를 통해서 직접 설치해야 합니다.

           SqlConnection 객체를 생성할 수 없다면 NuGet 패키지 관리자에서 찾아보기를 통해 검색하신 후 설치하면

           System.Data.SqlClient 를 사용할 수 있습니다.

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace MyToDoList.DataBase
{
    /// <summary>
    /// DataBase Connection 클래스
    /// SqlConnection 사용
    /// ConnectionString => MyToDoList > Web.config
    /// </summary>
    public class DBConnection
    {
        /// <summary>
        /// SqlConnection 객체 생성
        /// </summary>
        private static SqlConnection conn;

        /// <summary>
        /// DBConnection default 생성자
        /// </summary>
        public DBConnection() 
        {
            
        }

        /// <summary>
        /// GetConnection()
        /// </summary>
        /// <returns>SqlConnection</returns>
        public static SqlConnection GetConnection()
        {
            if (conn == null)
            {
                try
                {
                    conn = new SqlConnection(ConfigurationManager.ConnectionStrings["testData"].ToString());
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

            return conn;
        }


        /// <summary>
        /// SqlConnection 을 close()
        /// </summary>
        public static void Close()
        {
            if (conn != null)
            {
                try
                {
                    if (conn.State.Equals("Open"))
                    {
                        conn.Close();
                    }
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
                conn = null;
            }
        }

    }
}

            

 

   3. 외부에서 Connection 객체 생성 후 작업

// SqlConnection 객체 생성 
SqlConnection conn = DBConnection.GetConnection();

// open
conn.Open();

/*
	이곳에서
    작업수행
*/

// close
conn.Close();
728x90