이번글에서는 .NET Framework 에서 MSSQL 접속하여 데이터를 가져오고 화면에 표시하는 법을 알아보도록 하겠습니다.
C# 에서는 간단히 콘솔 프로그램으로 만들어 콘솔창에 DB 내용을 보여주는 예제를 보여드리도록 하겠습니다.
아쉽게도 이후 버전인 .Net Core, .Net 프로그래밍에서는 이런 UI 프로그래밍의 제공이 사리지고 명령으로 모델을 추가 할 수 있도록 변경 되었습니다.
.Net Core 또는 .Net 프로그램에서 MSSQL 접속을 위해서는 다음글을 참조 하시면 됩니다.
DB 구조
먼저 MSSQL DB 구조를 보겠습니다. 이번글에서는 DB First 즉 DB 먼저 생성하고 .Net 프로그래밍으로 MSSQL 에 접속해서 데이터를 읽고 쓰는 방법에 대해 알아볼것입니다.
MSSQL 에서 DB 구조가 어떻게 되어 있는지 먼저 보겠습니다. 저는 인터넷에서 많이 사용하는 MSSQL 예제 NorthWind 를 MSSQL 에 생성하였습니다.
위와 같이 Northwind 데이터베이스에서 Orders 라는 테이블의 데이터를 읽어보도록 하겠습니다.
프로젝트 생성
이제 실전으로 들어갑니다.
비쥬얼 스튜디오를 실행하고 테스트로 C# 콘솔앱을 하나 만들겠습니다. 저는 .Net Framework 4.6.1 로 만들겠습니다.
프로젝트 명을 TestMssql로 정해주었습니다.
서버탐색기 연결
프로젝트가 만들어졌으면 DB 의 테이블을 매칭할 모델을 만들어 주도록 하겠습니다.
그 전에 비쥬얼 스튜디오 서버탐색기에서 MSSQL DB 를 연결해야 합니다.
위에서처럼 서버탐색기에서 데이터 연결을 누르시고 연결 추가를 누릅니다.
MSSQL 에 접속해야 하므로 Microsoft SQL Server 를 선택해 줍니다.
해당 환경에 맞게 접속 정보를 누른신후 연결 테스트 한번 해보시고 확인을 누릅니다.
모델추가
이제 DB 모델을 추가 하겠습니다.
비쥬얼 스튜디오 프로젝트 탭에서 새항목을 하나 ADD 합니다.
데이터 탭에서 ADO.NET 엔티티 데이트 모델을 선택해 줍니다.
그런후 데이터 베이스의 EF Designer 를 선택해 줍니다.
서버 접속 설정을 마무리 짖습니다. 위 처럼 서버접속 정보와 모델 정보를 입력하고 다음을 클릭합니다.
그리고 EntityFramework 6.X 를 설치 하라는 화면이 나오는데 다음을 선택하고 다음을 누릅니다.
위의 DB 에서 Orders 테이블만 사용하도록 하겠습니다. 그리고 마침 버튼을 누르면 모델이 자동 생성됩니다.
위 사진처럼 프로젝트에 Northwind.edmx 아이템이 자동 추가 되었고 그 하위로 Orders 테이블의 모델이 자동 생성된 것을 보실 수 있습니다.
데이터 가져오기
Program.cs 에서 다음처럼 코딩후 실행 시켜 보겠습니다.
모든 데이터를 콘솔창에 표시해보겠습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestMssql
{
internal class Program
{
static void Main(string[] args)
{
using (var context = new NorthwindEntities())
{
foreach (var row in context.Orders)
{
Console.WriteLine(
$"OrderId : {row.OrderID} - CustomerId : {row.CustomerID}");
}
Console.WriteLine(
$"총 {context.Orders.Count()} 개 가 출력되었습니다.");
}
}
}
}
실행 시키면 다음과 같이 실행 됩니다.
결론
.Net Framework 에서 EntityFramework으로 MSSQL DB를 아주 쉽게 컨트롤 하는 방법을 배웠습니다.
DB 연결은 이렇게 쉽게 구성하였으니 EntityFrameWork 을 사용하여 Web 서버 또는 WPF 같은 UI 프로그램에서도 쉽게 접근하고 개발할 수 있습니다.