이번에는 마리아DB를 사용하여 연동하는 방법에 대하여 알아보도록 하겠습니다.
먼저 마리아DB가 설치가 되어있어야 되겠죠. 마리아DB설치방법(https://sosopro.tistory.com/107)은 이전 포스팅항목을 참고하시기 바랍니다.
MaraiDB사용관련 요약
1. MySql 닷넷용 Connector 다운로드
2. mysql-connector-net-8.0.25.msi 파일설치
3. MySql.Data.dll 프로젝트참조
- 닷넷프레임워크버전 4.5.2버전이상으로 빌드필요.
- 버전이 낮을경우 다음과 같은 에러메세지 발생. 'MySql' 형식 또는 네임스페이스 이름을 찾을 수 없습니다
4. MariaDB 접속
5. Select/Insert/Update/Delete문 테스트
6. DataGridView에 조회결과 표시
1. MySql 닷넷용 Connector 다운로드
먼저 마리아DB를 사용하기 위해서는 MySql.Data.dll을 참조해야합니다. 해당어셈블리를 참조하기 위해서는
https://dev.mysql.com/downloads/connector/net/
2. mysql-connector-net-8.0.25.msi 파일설치
다운로드 후 설치파일(mysql-connector-net-8.0.25.msi)을 설치합니다. 설치가 완료되면 아래경로에 MySql.Data.dll 파일이 "C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.25\Assemblies\v4.5.2" 경로에 설치됩니다.
3. MySql.Data.dll 프로젝트참조.
C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.25\Assemblies\v4.5.2\MySql.Data.dll 을 참조합니다. 주의하셔야될 사항이 닷넷버전의 경우 4.5.2버전이상 버전을 사용해야합니다.
4. MariaDB 접속
MySqlConnection클래스를 이용해서 먼저 Connection객체를 만들어 MariaDB에 접속합니다. 이때 ConnectionString값에 접속하고자하는 서버IP,데이터베이스명,계정,패스워드를 입력해서 접속합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public bool ConnectionTest()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};",
"127.0.0.1", "sampledb", "root", "root123!"); try
{
using (MySqlConnection conn = new MySqlConnection(connectString))
{
conn.Open();
}
return true;
}
catch (Exception)
{
return false;
}
}
|
5. Select/Insert/Update/Delete문 테스트
Insert,Update,Delete문을 사용하기위해서는 MySqlCommand클래스를 사용해서 처리합니다. ExecuteNoQuery메소드를 실행하면 쿼리문이 실행되며 결과의 행을 반환하지는 않지만 실행하고 영향을 받은 행의 개수가 리턴이 됩니다. Select문을 MySqlDataReader를 사용해서 조회가능합니다. MySqlDataReader를 사용할경우에는 DB에 연결을 유지한상태에서 데이터를 가져옵니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
namespace MariaDBTester
{
public class MariaDbLib
{
// 접속테스트
public bool ConnectionTest()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};", "127.0.0.1",
"sampledb", "root", "root123!"); try
{
using (MySqlConnection conn = new MySqlConnection(connectString))
{
conn.Open();
}
return true;
}
catch (Exception)
{
return false;
}
}
//데이터조회
public void SelectDB()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};", "127.0.0.1",
"sampledb", "root", "root123!"); string sql = "select * from user";
using (MySqlConnection conn = new MySqlConnection(connectString))
{
conn.Open();
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader dr = cmd.ExecuteReader();
dr.Close();
} }
//INSERT처리
public void InsertDB()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};", "127.0.0.1",
"sampledb", "root", "root123!"); string sql = "Insert Into user (id,name) values ('1','홍길동')";
using (MySqlConnection conn = new MySqlConnection (connectString))
{
conn.Open();
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
//UPDATE처리
public void UpdateDB()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};", "127.0.0.1",
"sampledb", "root", "root123!"); string sql = "Update user Set name ='홍길동2' where id = 1";
using (MySqlConnection conn = new MySqlConnection(connectString))
{
conn.Open();
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
//DELETE처리
public void DeleteDB()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};", "127.0.0.1",
"sampledb", "root", "root123!"); string sql = "Delete From user where id = '1'";
using (MySqlConnection conn = new MySqlConnection(connectString))
{
conn.Open();
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
//데이터조회
public DataSet GetUser()
{
string connectString = string.Format("Server={0};Database={1};Uid ={2};Pwd={3};", "127.0.0.1",
"sampledb", "root", "root123!"); string sql = "select * from user";
DataSet ds = new DataSet();
using (MySqlConnection conn = new MySqlConnection(connectString))
{
conn.Open();
MySqlDataAdapter da = new MySqlDataAdapter(sql, conn);
da.Fill(ds);
}
return ds;
}
}
}
|
cs |
6. DataGridView에 조회결과 표시를 해보도록 하겠습니다.
MySqlDataAdapter를 이용하여 해당결과를 DataSet으로 할당한후에 DataGridView의 DataSource값을 해당 DataSet값으로 나타냅니다. MySqlDataAdapter를 이용하여 비연결 상태의 데이터를 바인딩처리합니다.
1
2
3
4
5
6
7
|
private void button2_Click(object sender, EventArgs e)
{
MariaDbLib dbLib = new MariaDbLib();
DataSet ds;
ds = dbLib.GetUser();
dataGridView1.DataSource = ds.Tables[0];
}
|
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 프로그램 중복실행방지 (뮤텍스,프로세스개수로확인) (0) | 2021.08.22 |
---|---|
[C#] 윈폼 콘솔로 디버깅하기 (0) | 2021.07.17 |
[C#] 프로그램상에서 크롬브라우저 실행방법 (0) | 2021.01.26 |
[C#] ini파일 사용법 (0) | 2020.11.19 |
[C#] 웹 URL 이미지 불러오기 (WebClient) (0) | 2020.11.13 |