Windows10 환경에서 진행하고 .net framework 개발 환경이니 참고 바랍니다.
.net framework 버전이 4.5.2 이상이어야 함.
C#에서 MariaDB를 사용하기 위해서는 MySql.Data.dll 라이브러리를 등록해야 한다.
따라서 MySQL을 설치하기 위해 사이트로 접속하여 mysql-connector-net-[버전정보].msi를 설치한다.
https://dev.mysql.com/downloads/connector/net/

설치하면 위 사진과 같이 MySql.Data.dll을 확인 할 수 있다.

프로젝트를 열고 솔루션 탐색기 > [프로젝트] > 참조 우클릭 > 참조 추가 를 실행하고

찾아보기 버튼을 눌러 MySql.Data.dll를 찾고

위 사진과 같이 선택한 후 확인 버튼을 누른다.
using MySql.Data.MySqlClient;
class MariaDBInfo
{
private string ip;
private int port;
private string uid;
private string pwd;
private string dbname;
private MySqlConnection conn;
public MariaDBInfo(string ip, int port, string uid
, string pwd, string dbname)
{
this.ip = ip;
this.port = port;
this.uid = uid;
this.pwd = pwd;
this.dbname = dbname;
this.conn = null;
}
public void initDB()
{
// CharSet=utf8 설정을 안하면 한글 입출력시 물음표(?)로 인식
string connectString
= $"Server={ip};Port={port};Database={dbname};Uid={uid};Pwd={pwd};CharSet=utf8;";
try
{
conn = new MySqlConnection(connectString); // DB 설정
conn.Open(); // DB 연결
}catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
public MySqlConnection getConnection()
{
if (conn == null)
initDB();
return conn;
}
}
using MySql.Data.MySqlClient;
class MyData
{
private int id;
private string name;
public MyData(int id, string name)
{
this.id = id;
this.name = name;
}
}
class MariaDBManager
{
MariaDBInfo dbinfo;
public MariaDBManager()
{
dbinfo = new MariaDBInfo("127.0.0.1", 3306, "root", "passwd", "testdb");
}
// string query = "select id, name from tbl_mydata";
public List<MyData> selectQry(string query)
{
List<MyData> result = new List<MyData>();
try
{
MySqlCommand cmd = new MySqlCommand(query, dbinfo.getConnection());
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
// 데이터 조회시 null 값이 있을 경우에는 예외처리 필요.
result.Add(new MyData(int.Parse(dr[0].ToString()), dr[i].ToString()));
}
} catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
return null;
} finally
{
dr.Close();
}
return result;
}
}
// class MariaDBManager 에 있는 함수
public void CUDQry(string query) // C:insert, U: update, D: delete
{
try
{
MySqlCommand cmd = new MySqlCommand(query, dbinfo.getConnection());
cmd.ExecuteNonQuery();
} catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}