C#에서 MySQL 쉽게 연결하기

여러가지 방법이 있겠지만 이 글에서는 MySql에서 제공하는 ADO.NET Driver 을 이용하여 C#코드에서 MySql을 연결했다. MySql ADO.NET Driver는 MySql에서 유지보수까지 담당하고 있으므로 C#에서 MySql을 연결하려고 한다면 가장 합리적인 방법이 될 것 같다. 현재 5.1버전까지 나와있는데 필자는 5.0버전을 사용했다.

MySql ADO.NET Driver v5.0 다운로드 싸이트 바로가기

백문이 불여일타라고 사부님께서 말씀하셨듯이 코딩해보자.

ADO.NET 코딩
[CODE C#]
public void testMySqlADO()
{
    string connStr = "Data Source=server;Database=dbname;User Id=user;Password=password";

    MySqlConnection conn = new MySqlConnection(connStr);

    string query = "select * from tablename";

    MySqlCommand cmd = new MySqlCommand(query);

    cmd.Connection = conn;

    conn.Open();

    MySqlDataReader reader = cmd.ExecuteReader();
           
    conn.Close();

}
[/CODE]
어렵진않지만 DB를 호출할때 일일이 이렇게 코딩할수는 없는 노릇. DB Connection을 담당하는 클래스를 분리시키는 것이 좋겠다고 생각하고 잠깐 찾아봤는데, MySql님은 이를 위해 MySqlHelper라는 Class를 제공하고 계신다. 이 MySqlHelper는 크게 네종류, 중복정의를 합치면 15개의 static 메소드를 가지는 Sealed Class. 그 중 하나만 시그너처를 잠깐 볼까.

public static DataSet ExecuteDataset(string connectionString, string commandText)

눈치 빠르신 분들이라면 Helper가 왜 친절한지 시그너처만 보고도 짐작하실 것이다. 그렇다. connection이고 command고 필요없다. Helper 클래스에 던져주면 알아서 처리한다. 위 코드는 Helper를 이용해보면 다음과 같다.
[CODE C#]
public void testMySqlADO()
{
    string connStr = "Data Source=server;Database=dbname;User Id=user;Password=password";

    string query = "select * from tablename";

    DataSet ds = MySqlHelper.ExecuteDataset(connStr, query);

}
[/CODE]
코드는 줄고, 행복은 늘어나니 어찌아니 좋을소냐~

Posted by 망고

2007/07/20 13:39 2007/07/20 13:39
Response
No Trackback , 4 Comments
RSS :
http://www.shimminkyu.com/tc/rss/response/562

Trackback URL : http://www.shimminkyu.com/tc/trackback/562

Comments List

  1. 최성웅 2009/12/15 17:09 # M/D Reply Permalink

    MySqlHelper은 위에 파일을 설치하면 생기는것인가요???

    1. 망고 2009/12/16 02:47 # M/D Permalink

      네. 이 글을 쓸때는 5.0 버전이 최신버전이었는데 이제 6.2까지 나와있네요. http://dev.mysql.com/downloads/connector/net/6.2.html

  2. wilson 2010/07/29 11:19 # M/D Reply Permalink

    MysqlHelper를 사용할때 쿼리가 반복된다면 성능 이슈를 고려해봐야하지 않나요?

    MysqlHelper를 통해 Insert query를 100번 수행한다면 커넥션도 100번을 맺었다 끊었다 할텐데요..

    1. 망고 2010/07/30 01:22 # M/D Permalink

      네. 그럴 것 같습니다. Helper라는게 가볍게 쓸수는 있어도 말씀하신대로 한꺼번에 트랜잭션이 일어나는 경우는 다른 방법을 쓰는게 좋을 것 같네요. 그렇긴해도 C#이랑 MySQL을 실제 붙여서 사용하는 케이스는 아직 보지못했네요. 있나요???

Leave a comment
« Previous : 1 : ... 588 : 589 : 590 : 591 : 592 : 593 : 594 : 595 : 596 : ... 1060 : Next »

Lilypie Fourth Birthday tickers

Stay Foolish, Stay Hungry.

- 망고

Site Stats

Total hits:
439509
Today:
109
Yesterday:
151