본문 바로가기
데이타베이스

데이터베이스 연동(C#)

by minimax95 2020. 5. 6.

프로그램을 개발하면서 데이터베이스 연동은 거의 필수적이라 해도 과언이 아닐 것이다.

물론 프로그램 개발 목적에 따라 데이터베이스 연동이 불필요할 경우도 있겠지만

대부분의 프로그램에서는 데이터를 효과적으로 다루기 위해서 데이터베이스와 연동을 해야한다.

 

데이터베이스를 연동하기 위해서 어떤 플랫폼을 쓸 것인가 선택하는 것도 필요하다.

단순히 엑셀 형태로 데이터를 관리한다면 Excel이나 Access 등과 연동해서 사용할 수도 있고

데이터 테이블을 통하여 여러가지 정보를 생산하고자 한다면 MySQL 등을 사용해도 좋을 것이다.

 

여기서는 자주 사용하는 몇 가지 데이터베이스 연동 방법에 대해서 살펴보고자 한다.

1. Excel

  엑셀을 사용하기 위해서 먼저 라이브러리를 추가해야 한다.

엑셀 라이브러리는 솔루션 탐색기의 참조 관리자에서 [COM] > [형식 라이브러리] 메뉴를 선택하고

Microsoft Excel 14.0 Object Library 항목을 선택하여 라이브러리를 추가해야 한다.

(물론 Office 프로그램이 설치되어 있어야 가능하며 버전에 따라서 라이브러리 버전도 달라진다.)

엑셀 라이브러리를 참조한 이후 코드에서 사용하기 위해서는 아래의 using문을 추가해 준다.

using System.IO;

using Excel = Microsoft.Office.Interop.Excel;   // Excel을 네이스페이스의 별칭으로 사용

 

이후부터는 Excel 개체를 Excel.Application, Excel.Worksheet 등으로 참조하여 사용할 수 있게 된다.

 

2. ACCESS

 MS ACCESS 데이터베이스와 연동하기 위해서는 System.Data 라이브러리가 필요하다.

참조 관리자 [어셈블리] 하위에서 찾아볼 수 있다.

using문은 아래와 같이 선언해 준다.

using System.Data.OleDb;

이를 통해서 연동에 필요한 OleDbConnection과 OleDbcommand 클래스를 사용할 수 있다.

실제 연동을 위해서는 실행파일 폴더내 연동에 필요한 Access 파일을 함께 저장해 둬야 한다.

ACCESS 파일명이 'sampleInfo.accdb'라고 가정한다면 아래와 같이 SQL문을 만들어 Connection 및  Command를 Execute 할 수 있다.

private string strConSql = @"Provider=Microsoft.ACE.OLEDB.14.0;" +

                                   "Data Source=sampleInfo.accdb;

                                    Mode=ReadWrite";

 

var Con = new OleDbConnection(strConSql);

Con.Open( );   // Connection 연결

 

var Comm = new OleDbCommand("Select * from sampleTable", Con)  // 테이블명은 sampleTable

var tableRead = Comm.ExecuteReader( );

while(tableRead.Read( ))

{

    // 테이블 정보 로딩 생략~

}

tableRead.Close( );

Con.Close( );

 

 

3. MariaDB

MariaDB는 프리웨어 데이터베이스 시스템으로 MySQL과 거의 동일하게 사용할 수 있다.

데이터베이스 연동을 위해서는 먼저 MariaDB를 다운받아 설치한 후에 세팅이 필요하다.

(데이터베이스 이름을 SampleDB으로 생성하고 테이블은 sampleTable로 세팅)

 

이후 연동할 계정의 ID와  패스워드, 데이터베이스명, 서버IP와 PORT 정보를 확인하고 

실제 연동을 위한 라이브러리 참조를 추가해 준다.

참조 관리자에서 [어셈블리] > [확장] 하위의 MySql.Data 를 참조해 주고

아래와 같이 using문을 추가해 준다.

using MySql.Data.MySqlClient;

 

데이터베이스 연동을 위해 SQL문을 아래와 같이 작성한다.

private string strConSql = "Data Source=localhost;Database=SampleDB;"+

                                   "User Id=root;Password=1234";SslMode=none;CharSet=utf8;";

 

MariaDB 연동을 위한 ConSql을 세부적으로 본다면 아래와 같다.

Data Source=[서버 IP];

Database=[데이터비이스 이름];

User Id=[DB접속 계정 ID];

Password=[DB접속 계정 PW];

SslMod=[SSL 접속 기능];

CharSet=[문자 타입]

 

ACCESS와 맞찬가지로 실제 연동을 위한 소스코드는 아래와 같다.

var Con = new MySqlConnection(strConSql);

Con.Open( ); 

 

var Comm = new MySqlCommand("Select * from sampleTable", Con);

var tableRead = Comm.ExecuteReader( );

while(tableRead.Read( ))

{

    // 테이블 정보 로딩 생략~

}

tableRead.Close( );

Con.Close( );

 

데이터베이스 연동 후 테이블을 읽어온 후에는 반드시 자원 해제가 필요하다.

즉 tableRead.Close()와 Con.Close() 를 통해서 자원을 해제하거나 using 구문을 이용하여 자동으로 해제할 수도 있다.

'데이타베이스' 카테고리의 다른 글

MySQL Workbench 사용법  (2) 2020.05.15
R 프로그래밍[1]  (0) 2020.05.11
R 프로그래밍[0]  (0) 2020.05.09
빅 데이터 개요 및 처리 기술 소개  (0) 2020.04.29
DB 이중화(MariaDB Replication)  (2) 2020.04.25

댓글