[C# .NET] SQL Server 연동하기.

박제현·2024년 6월 5일
0

.NET

목록 보기
1/7
post-thumbnail

이 포스팅은 맥 환경을 기준으로 작성 되었습니다.

Docker 설치

맥에서 MS SQL Server를 이용하기 위해선, 도커에 이미지를 불러와 컨테이너를 실행시켜야 한다.
따라서, Docker를 설치해 준 뒤 도커에 MS SQL Server를 설치한다.

docker run -e "ACCEPT_EULA=1" -e "MSSQL_USER=SA" -e "MSSQL_SA_PASSWORD=SQLConnect1" -e "MSSQL_PID=Developer" -p 1433:1433 -d --name=sql_connect mcr.microsoft.com/azure-sql-edge
해당 커맨드를 입력하여 MS SQL Server를 구성하자.

환경 변수

  • ACCEPT_EULA : 최종 사용자 라이선스 계약 동의
  • MSSQL_USER : 유저 아이디, SA는 System Administrator
  • MSSQL_SA_PASSWORD : 시스템 관리자 패스워드
  • MSSQL_PID : SQL Server 버전 설정


MS SQL Server 컨테이너가 정상적으로 실행된 모습.

SQL Server 실행


Azure Database 를 실행하여 위와 같이 새로운 커넥션을 생성한다.
윈도우의 경우 SQL 로그인 필요 없이 현재 실행중인 윈도우 계정으로 생성할 수 있다.

정상적으로 커넥션이 됐다면 위와 같은 화면이 보인다.

CREATE DATABASE DotNetCourseDatabase
GO
 
USE DotNetCourseDatabase
GO
 
CREATE SCHEMA TutorialAppSchema
GO
 
CREATE TABLE TutorialAppSchema.Computer(
    ComputerId INT IDENTITY(1,1) PRIMARY KEY,
    Motherboard NVARCHAR(50),
    CPUCores INT,
    HasWifi BIT,
    HasLTE BIT,
    ReleaseDate DATE,
    Price DECIMAL(18,4),
    VideoCard NVARCHAR(50)
);

그리고 위와 같이 SQL 쿼리문을 실행하여, 실습에 필요한 데이터베이스와 스키마를 생성해준다.

Dapper 패키지 설치


Rider 의 환경에서는 위와 같이 패키지를 직접 추가할 수도 있다.
커맨드로 설치할 경우 dotnet add package Dapper 를 실행한다.

그리고 SQL 서버와 연동을 가능하게 해줄 SQLClient 패키지와 Entitiy 패키지들도 추가로 설치해준다.
dotnet add package microsoft.data.sqlclient, dotnet add package microsoft.entity.frameworkcore, dotnet add package microsoft.entity.framworkcore.sqlserver
를 실행해주면 된다.

프로젝트 연동 확인하기

string connectionString = "Server=localhost;" +
	"Database=DotNetCourseDatabase;" +
	"TrustServerCertificate=true;" +
	"Trusted_Connection=false;" +
	"User Id=sa;" +
	"Password=SQLConnect1;";

IDbConnection dbConnection = new SqlConnection(connectionString);

connectionString 으로 SQL Server와 연동할 String을 작성해준다.
.NET 에서 기본으로 제공하는 IDbConnection 인터페이스를 통해 RDBMS에 액세스 할 수 있다.

string sqlSelect = @"SELECT * FROM TutorialAppSchema.Computer";
IEnumerable<Computer> computers = dbConnection.Query<Computer>(sqlSelect);

foreach (Computer singleComputer in computers)
	{
    Console.WriteLine(singleComputer.ToString());
    }


SQL 쿼리문이 정상적으로 동작함을 알 수 있다.

Query, QuerySingle의 차이

  • Query
    • 열거형 데이터를 반환함. (목록)
  • QuerySingle
    • 해당하는 데이터 컬럼 하나를 반환함.

마무리

닷넷의 기본적인 데이터베이스 프로그래밍을 배운 것이다.
기초를 알아야 ORM을 사용할 줄 아는 법이다.

profile
닷넷 새싹

0개의 댓글

관련 채용 정보