C# DB연동



C#에서 MySQL DataBase 연동하는 방법입니다.


먼저 C# 프로그램에서 MySQL과 연동하기 위해서는 Connector가 필요합니다.


아래 링크로 들어가 다운받아 줍니다.


https://dev.mysql.com/downloads/connector/net/8.0.html


설치가 완료되었으면 Visual Studio를 실행하고


C# - Windows Forms 앱을 만들어 줍니다. (저는 프로젝트 명을 DBConnectionTest 라고 지었습니다.)


그리고 아래와 같이 솔루션 탐색기의 참조를 우클릭하여 참조 추가(R)를 선택합니다.





아래와 같은 참조 관리자가 실행되는데 우측 상단에 검색란에 mysql이라고 검색합니다.


(만약 MySql.Data가 나타나지 않는다면 아랭의 찾아보기(B)를 눌러 위에서 설치한 Connect의 경로를 추가합니다)





참고로 제 데이터베이스 테이블입니다.


테이블 구조입니다.




데이터는 하나만 추가했습니다.






다시 Visual Studio로 와서 최상단에 아래와 같이 입력합니다.


using MySql.Data.MySqlClient;


참조했던 MySql.Data를 사용하겠다는 뜻입니다.


그리고 Form1 안에 아래와 같이 변수를 선언해줍니다.


public static String url = "SERVER=LOCALHOST; USER=; DATABASE=;" + 

            "PORT=3306; PASSWORD=; SSLMODE=NONE";

        // DB접속 URL 설정 - SERVER : DB주소, USER : ID명, DATABASE : DB명, PORT : TCP 포트번호

        // PASSWORD : 비밀번호, SSLMODE : NONE (SSL 사용안함)

private MySqlConnection mConnection; // DB접속

private MySqlCommand mCommand; // 쿼리문

private MySqlDataReader mDataReader; // 실행문


기본 설명은 주석으로 처리하였습니다.


Form1.cs[디자인]에서 폼을 더블클릭하여 Form1_Load를 생성하여 아래와 같이 작성합니다.


또한 TextBox도 하나 생성해줍시다.


private void Form1_Load(object sender, EventArgs e)

{

    mConnection = new MySqlConnection(url); // DB접속

    mCommand = new MySqlCommand(); // 쿼리문 생성

    mCommand.Connection = mConnection; // DB에 연결


    mCommand.CommandText = "SELECT * FROM TEST"; // 쿼리문 작성

    mConnection.Open(); // DB 오픈

    mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행


    while (mDataReader.Read()) // 전부 다 읽어 옴

    {

        // 여기서 부터 원하는 데이터를 받아와서 처리

        string tempName = mDataReader["name"].ToString();

        string tempPhone = mDataReader["phone"].ToString();

        string tempAge = mDataReader["age"].ToString(); 


        textBox1.AppendText("이름 : " + tempName + "\n");

        textBox1.AppendText("전화번호 : " + tempPhone + "\n");

        textBox1.AppendText("나이 : " + tempAge + "\n");

    }


    mConnection.Close(); // 사용 후 객체 닫기

}


아래는 전체 코드입니다.


using MySql.Data.MySqlClient;

using System;

using System.Windows.Forms;


namespace DBConnectionTest

{

    public partial class Form1 : Form

    {

        public static String url = "SERVER=LOCALHOST; USER=; DATABASE=;" + 

            "PORT=3306; PASSWORD=; SSLMODE=NONE";

        // DB접속 URL 설정 - SERVER : DB주소, USER : ID명, DATABASE : DB명, PORT : TCP 포트번호

        // PASSWORD : 비밀번호, SSLMODE : NONE (SSL 사용안함)

        private MySqlConnection mConnection; // DB접속

        private MySqlCommand mCommand; // 쿼리문

        private MySqlDataReader mDataReader; // 실행문

        

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            mConnection = new MySqlConnection(url); // DB접속

            mCommand = new MySqlCommand(); // 쿼리문 생성

            mCommand.Connection = mConnection; // DB에 연결


            mCommand.CommandText = "SELECT * FROM TEST"; // 쿼리문 작성

            mConnection.Open(); // DB 오픈

            mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행


            while (mDataReader.Read()) // 전부 다 읽어 옴

            {

                // 여기서 부터 원하는 데이터를 받아와서 처리

                string tempName = mDataReader["name"].ToString();

                string tempPhone = mDataReader["phone"].ToString();

                string tempAge = mDataReader["age"].ToString(); 


                textBox1.AppendText("이름 : " + tempName + "\n");

                textBox1.AppendText("전화번호 : " + tempPhone + "\n");

                textBox1.AppendText("나이 : " + tempAge + "\n");

            }


            mConnection.Close(); // 사용 후 객체 닫기

        }

    }

}


실행화면입니다.


아래와 같이 데이터베이스에 존재하는 내용을 받아와 출력한 화면입니다.




이외에도 UPDATE, DELETE, INSERT와 같이 쿼리문과 코드만 살짝 수정해서 사용 할 수 있습니다.


지금까지 C#과 MySQL DataBase 연동하는 방법에 대해 알아보았습니다.






정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.

질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.




to Top