본문으로 바로가기

MySQL 연동

category Development/C# 2008. 10. 30. 20:33

2가지 방법으로 테스트 해 봤습니다. 직접 코딩을 했더니 MySql,Data 의 어셈블리 참조를 못해서 컴파일이 안되더군요.
결국 비주얼스튜디오를 이용해서 참조시키고 컴파일해서 테스트 했습니다.

아래 소스를 보시면 odbc 와 mysqlclient 를 사용해서 두가지로 접속 했습니다.
이상없이 동작한걸 확인했는데, oledb 를 이용한 mysql 접속은 더이상 지원하지 않는 거 같습니다.
(참고: http://www.pcrpg.org/TRPGguides/mysqloledotnet.php (꽤 오래된 문서입니다.))
mysql 사이트에서는 myoledb 에 관해 http://sourceforge.net/projects/mysqlnet/ 를 참조하라고 하는데, 이곳 역시 2004년 이후로 개발 진행 안되고 있습니다. (상용을 찾으시면 http://crlab.com/mysqlnet/ 에서 지원하고 있습니다.)

odbc 를 이용할 경우 http://dev.mysql.com/downloads/connector/odbc/3.51.html 를,
mysqlclient 는 http://dev.mysql.com/downloads/connector/net/5.0.html 를 설치하시고 사용하시면 됩니다.

using System;
using System.Data;
//using System.Data.OleDb;
using System.Data.Odbc;         // for odbcClient 메서드
using MySql.Data.MySqlClient;   // for sqlClient 메서드 (추천)

namespace sqlTest
{
    class Program
    {
        public void odbcClient()
        {
            Console.WriteLine("ODBC Ready...");
            OdbcConnection conn;
            try
            {
                conn = new OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;User=root;Password=;Database=mysql;");
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {
                    Console.WriteLine("ODBC Connected !");
                }
            }
            catch (OdbcException e)
            {
                Console.WriteLine("ODBC Exception: {0}", e.Message);
            }
        }

        public void sqlClient()
        {
            Console.WriteLine("MySql Ready...");
            MySqlConnection conn;
            try
            {
                conn = new MySqlConnection("Server=localhost;User=root;Password=;Database=mysql;");
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {
                    Console.WriteLine("MySql Connected !");
                }
            }
            catch (MySqlException e)
            {
                Console.WriteLine("MySql Exception: {0}", e.Message);
            }
        }

        public static void Main(string[] args)
        {
            Program mt = new Program();

            // 접속 테스트
            mt.odbcClient();
            mt.sqlClient();
        }
    }
}

'Development > C#' 카테고리의 다른 글

제네릭이란 무엇인가?  (0) 2008.11.17
DataGridView 내용 엑셀에 붙이기  (0) 2008.10.30
아스키코드표  (0) 2008.10.30
Windows 서비스 프로그램  (0) 2008.08.07
DataGridView Tip  (0) 2008.08.05