Please Enable JavaScript!
Gon[ Enable JavaScript ]

[C#] MySQL 연결후 데이터 저장, 조회 하기

기타 언어/C# & MFC
반응형

[C#] MySQL 연결후 데이터 저장, 조회 하기

 

환경 : window 7 64bit, Visual Studio 2014

 

C# 에서 MySQL 을 사용하기 위해서는 Connector 필요합니다. Connector DLL MySQL 웹사이트에서 받을수 있으며 드라이버 설치후 MySQL.Data.MySqlClient 네임스페이스를 참조하면 됩니다. 이번예제는 간단하게 연결해서 입력과 조회를 해 보도록 하겠습니다.

 

MySQL Connector/Net 를 받기 위해 아래 사이트로 접속합니다.

http://dev.mysql.com/downloads/connector/net/

 

[C#] MySQL 연결후 데이터 저장, 조회 하기

 

다운 받아서 설치 합니다. 기본만 설치 하시면 됩니다.

[C#] MySQL 연결후 데이터 저장, 조회 하기

 

설치가 끝나면 API 문서를 볼수 있는 메뉴가 추가 됩니다. 아래 문서를 열어서 궁금한점은 참조 하여 개발을 진행 하면 될 것 같네요.

[C#] MySQL 연결후 데이터 저장, 조회 하기

 

C# 에서 MySQL 에 접속하기 위해 dll 을 추가 하여야 합니다. Extensions 으로 가셔서 리스트에 보시면 MySQL.Data 가 있을 겁니다. 체크해서 추가합니다.

[C#] MySQL 연결후 데이터 저장, 조회 하기

 

우선 소스에서는 Connector 객체를 생성해야 하는데 MySqlConnection 클래스가 그것을 담당합니다. 그리고 생성자 함수의 인수로 연결 정보를 넘기면 됩니다.

 

l  Server : 서버 IP 나 도메인주소

l  Database : DB

l  Uid : 사용자 로그인 ID

l  Pwd : 암호명

 

using MySql.Data.MySqlClient;
String strConn = "Server=localhost;Database=test;Uid=root;Pwd=123;";
MySqlConnection conn = new MySqlConnection(strConn);

 

이렇게 연결을 위한 객체인 MySqlConnection 만들어 졌으면 데이터를 저장, 수정, 삭제를 위한 기능을 만들어야 겠죠. 흔히 CRUD 라고 하는데 쿼리를 문자열로 만들어 전달해 주면 수행하는 클래스가 MySqlCommand 입니다. 리턴값을 받지 않는 INSERT, DELETE, UPDATE MySqlCommand 사용하면 됩니다.

 

private void Insert()
{
    try
    {
        conn.Open();
        String sql = "INSERT INTO members (id, pwd, name) " +
                        "VALUES ('gon', '111', '김삿갓')";

        MySqlCommand cmd = new MySqlCommand(sql, conn);
        cmd.ExecuteNonQuery();
        conn.Close();
    }
    catch (Exception e)
    {
        Console.WriteLine(e.StackTrace);
    }
}

 

다음은 조회입니다. 조회를 할 때 커넥션을 Open 하지 않고 비연결모드로 가져오기가 가능합니다. 조회를 담당하는 클래스는 MySqlDataAdapter 이며 DataSet 에 조회한

데이터를 담습니다. DataSet 에서 foreach 를 사용해 하나씩 꺼내 쓰면 되는 것이죠.

 

private void SelectData()
{
    try
    {
        DataSet ds = new DataSet();

        //MySqlDataAdapter 클래스를 이용하여 비연결 모드로 데이타 가져오기
        string sql = "SELECT id,pwd,name FROM members";
        MySqlDataAdapter adpt = new MySqlDataAdapter(sql, conn);
        adpt.Fill(ds, "members");
        if (ds.Tables.Count > 0)
        {
            foreach (DataRow r in ds.Tables[0].Rows)
            {
                Console.WriteLine(r["name"]);
            }
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e.StackTrace);
    }
}
반응형
Posted by 녹두장군1
,