C#에서 MySQL 연동 ( VC2008 기준 )

프로그래밍/C# 2008/04/29 13:09

C#에서 MySQL을 연동하기 위해서 기본적으로 선행해야 될것들에
대한 짧은 정리

mysql org 사이트의 net관련 Connecter를 다운로드하여 설치한다.
http://dev.mysql.com/downloads/connector/net/5.2.html

관련 프로젝트에서 Project(프로젝트) -> Add Reference(참조추가) 에서
.NET 탭에서  MySQL.Data 를 추가한다.


실제로 프로그래밍을 위한 문서와 샘플은 다음의 디렉토리에 있다.
Program Files -> MySQL ->MySQL Connecter -> Document
Program Files -> MySQL ->MySQL Connecter -> Samples

접속의 예)
private MySqlConnection  conn;
private void connectBtn_Click(object sender, System.EventArgs e)
 {
  if (conn != null)
   conn.Close();

  string connStr = String.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false",
   server.Text, userid.Text, password.Text );
// 코넥션 스트링을 외부텍스트콘트롤 server, userid , password 의
text값을 이용하여 생성
.

  try
  {
   conn = new MySqlConnection( connStr ); // 코넥션 스트링으로 새로운 코낵션생성
   conn.Open(); // 접속

   GetDatabases();
  }
  catch (MySqlException ex) // 익섹션처리는 MySqlException으로 정의
  {
   MessageBox.Show( "Error connecting to the server: " + ex.Message );
  }
 }

명령의 실행의 예)
private void GetDatabases()
 {
  MySqlDataReader reader = null;

  MySqlCommand cmd = new MySqlCommand("SHOW DATABASES", conn);
  try
  {
   reader = cmd.ExecuteReader();
   databaseList.Items.Clear();
   while (reader.Read())
   {
    databaseList.Items.Add( reader.GetString(0) ); // 리스트콘트롤에 결과값을 추가함
   }
  }
  catch (MySqlException ex)
  {
   MessageBox.Show("Failed to populate database list: " + ex.Message );
  }
  finally
  {
   if (reader != null) reader.Close();
  }
 }

위 소스는 샘플 디렉토리의 샘플소스에서 발췌하였고 , 주석은 설명을 위해
추가작성함.

top

Trackback Address :: http://www.xevious7.com/trackback/342

  1. waterdrw 2008/11/05 20:51 MODIFY/DELETE REPLY

    안녕하세요!

    좋은 글 감사히 잘 읽었습니다..

    다름이 아니라 제가 이 글을 보고

    제가 테스트 중인 서버에 접속 을 하려 하니까....

    Aeccess Denied 오류가 나오네요..

    저기 위에 나온 connector 말고 다른 설정을 할건 없는지요...

    저 오류를 해결할 방법을 아신다면 답변 부탁드리겠습니다..

    좋은 하루 되세요!!^^

    • xevious7 2008/11/05 21:20 MODIFY/DELETE

      mysql 공식 콤포넌트 이기 때문에
      Access Denied 오류가 난다고 하면
      콤포넌트 문제라기보다는
      보안설정이나 포트설정 문제라고 생각됩니다.

      즉 Access Denied 메시지를 받았다는 것은
      접속 콤포넌트는 제대로 작동한다는 의미입니다.

      환경설정(패스워드,IP,방화벽,포트,보안설정)
      이런것을 확인해보셔야 합니다.


    • xevious7 2008/11/05 21:21 MODIFY/DELETE

      아 , 버전 문제일수도 있습니다.

      버전 문제라면 mysql 사이트에서
      버전에 맞는 컴포넌트를 설치하시면 될듯합니다.

  2. waterdrw 2008/11/05 21:37 MODIFY/DELETE REPLY

    아.. 해결 방법을 금방 찾았네요^^:;

    서버 상에서 Mysql 접속 권한을 % 로 주고 재 실행 하니까

    잘되는군요.. 자문 자답입니다 하하;;

    좋은 하루 되세요^^

  3. waterdrw 2008/11/05 21:38 MODIFY/DELETE REPLY

    아.. 금방 답변 주셨네요^^;;

    말씀하신대로 환경설정 문제 였습니다 ㅎ;;

    제가 금방 해볼 요량으로 제대로 확인을 안해서 그런거더군요..ㅠㅠ;;

    다음부터는 좀 설레이는 마음을 가라앉히고 해야겠습니다 ㅎㅎ;;

Write a comment