ASP.NET / SqlConnection() 객체를 이용한 DBConnection / DB연결하기
● 환경
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();