프로그램 개발/C#

[wpf] MariaDB 사용하기 - 3. c#에서 사용하기(Microsoft Visual Studio)

(ㅇㅅㅎ) 2024. 9. 12. 00:46
728x90
반응형

 

 MariaDB를 다운하지 않으신 분은 이곳의 포스팅을 참고하셔서 다운로드하시고 VisualStudio에 연동하지 않으신 분은 이곳의 포스팅을 참고하셔서 연동하시길 바랍니다.

 

 C#에서 MariaDB 사용하는 법은 간단합니다.  MySqlCommand에 명령어(CREATE, INSERT, UPDATE, SELECT 등)를 입력하고 데이터를 불러올 때에만 MySqlDataReader를 사용하시면 됩니다. 

private void dbQuery(string q){
  string conn_string = "Server=127.0.0.1;Port=3306;Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    cmd.CommandText = q;
    
    // 데이터 불러올 때만 사용 ------------------------------
    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
      // 데이터 형식은 reader[0], reader[1], 이런식으로 꺼내어서 사용 가능합니다.
    }
    --------------------------------------------------------*/
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

 아래의 예제에서는 매번 연결하도록 코드를 작성하였지만, 편의에 따라서 연결 부분을 바깥으로 빼내어서 공통으로 사용하시는 것을 추천드립니다.

 

 

DATABASE 생성(Test라는 DATABASE 생성)

private void createDatabase(){
  string conn_string = "Server=127.0.0.1;Port=3306;Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "CREATE DATABASE [데이터베이스 이름];";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

DATABASE 삭제

private void createDatabase(){
  string conn_string = "Server=127.0.0.1;Port=3306;Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "DROP DATABASE [데이터베이스 이름];";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

DATABASE 선택

private void deleteDatabase(){
  string conn_string = "Server=127.0.0.1;Port=3306;Uid=root;Pwd=지정하신 비밀번호 입력";
  // 아래처럼 바로 연결하도록 설정하셔도 됩니다.
  // string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "USE [데이터베이스 이름];";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

TABLE 생성

private void createTable(){
  // 데이터베이스 연결
  string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "CREATE TABLE [테이블이름]([열 이름] INT, [열 이름] VARCHAR(10));";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

TABLE 삭제

private void deleteTable(){
  // 데이터베이스 연결
  string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "DROP TABLE [테이블 이름];";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

데이터 입력

private void insertData(){
  // 데이터베이스 연결
  string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "INSERT INTO [테이블 이름] VALUES('값1', '값2', ...);";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

데이터 수정

private void updateData(){
  // 데이터베이스 연결
  string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "UPDATE [테이블 이름] SET [열 이름] = '값1' WHERE [열 이름] = '값2';";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

데이터 삭제

private void deleteData(){
  // 데이터베이스 연결
  string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "DELETE FROM [테이블 이름] WHERE [열 이름]='값';";
    cmd.CommandText = sql_query;
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

데이터 검색

private void selectData(){
  // 데이터베이스 연결
  string conn_string = "Server=127.0.0.1;Port=3306;Database=[데이터베이스 이름];Uid=root;Pwd=지정하신 비밀번호 입력";
  MySqlConnection conn = new MySqlConnection(conn_string);
  MySqlCommand cmd = conn.CreateCommand();
  try
  {
    conn.Open();
    string sql_query = "SELECT * FROM [테이블 이름] WHERE [열 이름]='값';";
    cmd.CommandText = sql_query;
 
    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
      // 데이터 형식은 reader[0], reader[1], 이런식으로 꺼내어서 사용 가능합니다.
    }
  }
  catch (Exception e)
  {
    Console.WriteLine($"Error: {e.Message}");
  }
  finally
  {
    conn.Close();
  }           
}

 

 

반응형