UD_park's IT story
[C#] DataBase 연결 원리와 방법에 대한 설명 본문
[이 포스팅은
시작하세요! C# 7.1 프로그래밍의
내용을 발췌하였습니다]
[보기용 예제 소스 코드에서 오류 발생시에
댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]
이번에는 C#으로 DataBase를 연결하는
원리와 방법에 대해서 자세하게 알아보는
포스팅을 시작해보도록 하겠습니다
일단 미리 알려드릴 점은
저는 Visual Studio 2017을 사용중이며
DataBase는 Microsoft SQL server 2008 R2 SP2
- Express Edition을 사용하였습니다
[아래에서 설명할 부분에서
혹시 MySQL을 사용하신다면
밑의 소스코드들 중에서
Sql 이라고 함수 시작하는 모든곳에
Sql 대신에 Mysql이라고 써주시면
MySQL으로도 동작 가능합니다]
그럼 간단한 원리부터 시작하도록 하겠습니다
C#에서 DB(DataBase)로 연결하는 원리는
주소와 DB의 이름, 로그인할 계정 ID와 PW로
이루어져 진행됩니다
C#에서 DataBase에 접근할 때,
만약 DataBase가 여러 개라면
(단 하나뿐이더라도 이와 같음)
가장 먼저 주소와 이름으로 위치와
내가 사용할 DataBase를 정확하게
파악합니다
그 후 DB 내부의 Data에 접근하기 위해서는
해당 DataBase에 접근 가능하고, data의
등록/수정 등을 할 수있는 권한을 가진 계정의 ID와
Password를 통해서 DB의 내부에 있는
data가 있는곳 까지 접근이 가능합니다
간단한 원리에 대한 설명은 마치도록하고
이제부터 소스코드를 보며 방법에 대해서
설명을 이어가도록 하겠습니다
코드 소스는 Program.cs와 App.config
두 가지로 살펴보도록 하겠습니다
우선 App.config입니다
다른 부분은 제외하고 3-5번 줄은
제가 소스코드로 입력해 넣은 부분입니다
바로 저 부분이 DB를 불러오도록 명령하는
소스코드입니다
그럼 제가 추가적으로 작성한
소스 코드를 크게 보며 더욱
자세하게 설명해보겠습니다
<connectionStrings>
<add name="TestDB" connectionString="Data Source=TEST-PC\UD;Initial Catalog=TestDB;User ID=sa;Password=*******"/>
</connectionStrings>
// DataSource : 사용할 Server의 이름
// Initial Catalog : 사용할 Server 안에 있는 Database 이름
// User ID : Server 안에 있는 Database에 로그인할 계정 ID
// Password : 계정 ID의 비밀번호
제일 처음 나오는 connectionStrings은
정확하게 설명된 곳을 찾기가 어려워
저만의 생각으로 정의를 내렸습니다
DB나 다른 프로그램들과 프로젝트가
연결된 상황에서 사용되는 모든 문자(Data)
들을 문자열로 묶어 주는 함수가
connectionStrings라고 저는 정의했습니다
쉽게 표현하자면 두 명의 사람이
연락하는 수단으로 흔히 사용하는
카카오톡 같은 개념으로 저는 생각했습니다
그리고 이 함수는 뒤에 Program.cs에서
ConfigurationManager라는 자료형으로
값을 가져와서 사용합니다
함수 안쪽 부분에서 보이는 것처럼
add로 새로운 문자열을 함수에 추가하는데
이때 name으로 구분을 하는 것처럼 보여집니다
그런 다음에는 실질적인 데이터의 문자열 부분인
connectionString=(이 부분)을 통해서
DB의 위치와 이름, 계정과 패스워드까지
한 번에 저장하여 사용할 수 있도록 합니다
(실제 Password에는 암호를 눈에 보이게
입력하지만 개인 정보 차원에서 * 으로 가렸습니다)
다음은 Program.cs 부분입니다
실질적인 프로젝트의 코드는 모두
이쪽 부분에 있다고 생각하셔도
무방합니다
(꼭 6-7번 코드 줄을 추가해 주시기 바랍니다)
위의 소스코드에서 15번 줄이
제 개인적인 생각으로는 여기서 가장
중요한 코드라고 생각합니다
즉, DataBase에 접근하도록
App.config 부분에서 앞서 설명한것과 같이
DB에 접근하도록 연결해주는 부분이 바로
15번 줄입니다
이후 22번 줄에서는 실질적으로
연결되어있는 DB의 길에 닫혀있던
문을 열어주는 코드라고 생각하시면
될 것같습니다
이후 24번 코드 부터는 SqlCommand라는
함수를 사용하여 DB 내부의 data들을
출력, 수정, 추가, 삭제 등등의 작업들을
할 수있도록 하는 함수를 사용합니다
(위의 소스코드 예제에서는
출력을 실행하고있습니다)
DB의 Data를 다루는 SqlCommand 함수는
이후에 다룰 DataBase의 조작에 대한
포스팅에서 이어가도록 하겠습니다
혹시 다른것에 대해 궁금하신게
있으시다면
댓글에 달아주세요
아는것이면 친절하게 쉽게
모르는것이면 또 제가 알아내서
친절하게 쉽게 포스팅해서
설명해드리겠습니다
'IT - Language > C#' 카테고리의 다른 글
[C#] Thread의 기본 개념과 사용법 (1) | 2018.07.10 |
---|---|
[C#] 컴퓨터 IP 출력하기(feat.DNS에 대한 개념과 설명) (0) | 2018.07.02 |
[C#] 선택문(switch) 개념 및 사용법[1 - 3] (0) | 2018.06.26 |
[C#] 선택문(if) 개념 및 사용법[1 - 2] (0) | 2018.06.26 |
[C#] 배열/다차원 배열(feat.가변배열)의 기본 개념과 사용법 (0) | 2018.06.26 |