여러가지 방법이 있겠지만 이 글에서는 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 망고
