C#/기본

[C#] C# 에서 Mysql연동하기 (insert, select)

vmpo 2019. 11. 3. 20:32

 

C#에서 Mysql DB를 연동하는 코드를 작성해 보도록 하겠습니다.

 

Mysql설치가 필요하신 분들은,

아래 링크를 확인해주세요.

https://vmpo.tistory.com/82

 

윈도우 10 Mysql 설치하기 (mysql 개발환경 세팅)

윈도우10에서 mysql을 설치해보도록 하겠습니다. 아래 웹사이트로 접속하면 최신버전 mysql install 파일을 확인할 수 있습니다. https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer..

vmpo.tistory.com

 

Mysql DB에 테이블 생성하기


DB연동에 앞서 테이블을 먼저 생성해보겠습니다.

Mysql Workbench에서 빠르게 생성해보도록 하겠습니다.

 

coding32 Database를 하나 생성하고,

Co32Table명을 갖는 table을 생성했습니다.

 

 

그럼 이제 C#에서 코드를 구현해보겠습니다.

 

Mysql.Data.dll import


먼저, dll파일을 하나 import합니다.

 

도구-> nuget패키지관리자->솔루션용 nuget패키지 관리자에서 Mysql을 검색해줍니다.

Mysql.Data를 선택한 후 프로젝트에 적용해줍니다.

적용이 완료되었다면, 아래와 같이 Mysql.Data 패키지가 import되어 있는 것을 확인 할 수 있습니다.

 

Conntection String


C#에서 Mysql Connection String은 아래와 같습니다.

저 같은 로컬pc에 Mysql을 설치했기 때문에 IP는 localhost로 설정했습니다.

원격 서버로 접근해야되는 경우, 해당 부분을 원격서버 ip로 설정해주시면 됩니다.

Server=서버아이피;Port=포트;Database=데이터베이스명;Uid=접속계정아이디;Pwd=패스워드;

더보기

MySqlConnection connection = new MySqlConnection("Server=localhost;Port=3306;Database=coding32;Uid=root;Pwd=1111")

C#에서 Mysql Insert 하기

 


using System;
using MySql.Data.MySqlClient;

namespace Coding32
{
    class Program
    {
        static void Main(string[] args)
        {


            using (MySqlConnection connection = new MySqlConnection("Server=localhost;Port=3306;Database=coding32;Uid=root;Pwd=1111"))
            {
                string insertQuery = "INSERT INTO Co32table(idx,header,body) VALUES(3,'header1','body2')";
                try//예외 처리
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand(insertQuery, connection);

                    // 만약에 내가처리한 Mysql에 정상적으로 들어갔다면 메세지를 보여주라는 뜻이다
                    if (command.ExecuteNonQuery() == 1)
                    {
                        Console.WriteLine("인서트 성공");
                    }
                    else
                    {
                        Console.WriteLine("인서트 실패");
                    }

                }
                catch (Exception ex)
                {
                    Console.WriteLine("실패");
                    Console.WriteLine(ex.ToString());
                }
                
            }            

        }
    }
}

 

 

DB조회 결과 : 정상적으로 인서트 된 것을 확인 할 수 있음

 

 

C#에서 Mysql Select하기


MysqlCommand객체를 통해 쿼리를 수행하고, (cmd.ExecuteReader() ) 

결과를 MySqlDataReader를 통해 읽도록 합니다.

        public static void SelectMysql()
        {
            using (MySqlConnection connection = new MySqlConnection("Server=localhost;Port=3306;Database=coding32;Uid=root;Pwd=1111"))
            {
                try//예외 처리
                {
                    connection.Open();
                    string sql = "SELECT * FROM Co32table";

                    //ExecuteReader를 이용하여
                    //연결 모드로 데이타 가져오기
                    MySqlCommand cmd = new MySqlCommand(sql, connection);
                    MySqlDataReader table = cmd.ExecuteReader();
                    
                    while (table.Read())
                    {
                        Console.WriteLine("{0} {1}", table["idx"], table["header"],table["body"]);
                    }
                    table.Close();

                }
                catch (Exception ex)
                {
                    Console.WriteLine("실패");
                    Console.WriteLine(ex.ToString());
                }

            }
        }

 

수행 결과 : 정상적으로 조회가 되었음.

LIST