[๋ฐ์ดํฐ๋ฒ ์ด์ค] .Net C#์์ MySQL ์ฌ์ฉํ๊ธฐ (์์ ํ์ผ ๋ค์ด๋ก๋)
์๊ฐ
์ง๋ ํฌ์คํ ์์๋ ์๋์ฐ10์์ MySQL์ ์ฌ์ฉํ๊ธฐ ์ํ ํ๊ฒฝ ๊ตฌ์ฑ์ ์๊ฐํ์์ต๋๋ค.
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์๋์ฐ10์ MySQL ์ค์น ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ
์ด๋ฒ ํฌ์คํ ์์๋ ์ฝ๋ ๋ ๋ฒจ์์ ์ด๋ป๊ฒ MySQL์ ์ ๊ทผํ์ฌ DB์ ์ ๊ทผํ๋์ง ์๊ฐํ๊ฒ ์ต๋๋ค.
์์ ํ๋ก์ ํธ ๋ชฉํ
๋ณธ๋ฌธ์ ์์ ํ๋ก์ ํธ๋ ๊ฐ๋จํ๊ฒ MySQL์ ์ฌ์ฉํ์ฌ ์ ํ๋ฒํธ๋ถ๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ๋์์ ์๋์ ๊ฐ์ต๋๋ค.
์์ ํ๋ก์ ํธ๋ DB์ ์ฐ๋ํ์ฌ ๋ฐ์ดํฐ ์ฝ์
(INSERT)
, ์์ (UPDATE)
, ์ญ์ (DELETE)
, ์กฐํ(SELECT)
๋์์ ๋ณด์ฌ์ค๋๋ค. ์ฐธ๊ณ ๋ก ๋ณธ๋ฌธ์ ์์ ์ฝ๋์ ์ฌ์ฉ๋ DB๋ ์๋์ ๊ฐ์ด ์์ฑํ์ต๋๋ค.
accounts_table
์ด๋ฆ์ผ๋ก ํ
์ด๋ธ์ ์์ฑํ๊ณ , Column์ผ๋ก id(INT)
์ name(VARCHAR)
๊ทธ๋ฆฌ๊ณ phone(VARCHAR)
์ ์์ฑํ์ต๋๋ค. name์๋ ์ด๋ฆ์ด, phone์๋ ์ ํ๋ฒํธ ๋ฐ์ดํฐ๊ฐ ์
๋ ฅ๋ฉ๋๋ค.
.Net C#์์ MySQL์ ์ฌ์ฉํ๊ธฐ ์ํ ์ค๋น
ExamMySQL
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก C# WinForm ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ๋๊ฒ(NuGet)์์ MySql.Data
ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ฌ MySQL ์ฌ์ฉ์ ์ํ ์ค๋น๋ฅผ ๋ง์นฉ๋๋ค.
//...
//MySQL namespace๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ ์ธ.
using MySql.Data.MySqlClient;
namespace ExamMySQL
{
public partial class Form1 : Form
{
string _server = "localhost"; //DB ์๋ฒ ์ฃผ์, ๋ก์ปฌ์ผ ๊ฒฝ์ฐ localhost
int _port = 3308; //DB ์๋ฒ ํฌํธ
string _database = "new_schema"; //DB ์ด๋ฆ
string _id = "root"; //๊ณ์ ์์ด๋
string _pw = "root"; //๊ณ์ ๋น๋ฐ๋ฒํธ
string _connectionAddress = "";
public Form1()
{
InitializeComponent();
//MySQL ์ฐ๊ฒฐ์ ์ํ ์ฃผ์ ํ์
_connectionAddress = string.Format("Server={0};Port={1};Database={2};Uid={3};Pwd={4}", _server, _port, _database, _id, _pw);
}
//...
}
}
WinForm UI ๊ตฌ์ฑ
์ด๋ฆ(name)
๊ณผ ๋ฒํธ(phone)
๋ฐ์ดํฐ๋ฅผ ์ฝ์
, ์์ , ์ญ์ , ์กฐํํ๋ ๊ฒ์ด๋ฏ๋ก ์๋์ ๊ฐ์ด ๋จ์ํ๊ฒ UI๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
MySQL ๋ฐ์ดํฐ ์ฝ์ (INSERT)
ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์ ์ ์ํ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
INSERT INTO ํ
์ด๋ธ์ด๋ฆ [column1, column2, ...] VALUES (value1, value2, ...);
๊ทธ๋ฆฌ๊ณ ์์ ์ฝ๋์ ๋ฐ์ดํฐ ์ฝ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ๋์ด ์์ต๋๋ค.
private void buttonInsert_Click(object sender, EventArgs e)
{
try
{
using (MySqlConnection mysql = new MySqlConnection(_connectionAddress))
{
mysql.Open();
//accounts_table์ name, phone column ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํฉ๋๋ค. id๋ ์๋์ผ๋ก ์ฆ๊ฐํฉ๋๋ค.
string insertQuery = string.Format("INSERT INTO accounts_table (name, phone) VALUES ('{0}', '{1}');", textBoxName.Text, textBoxPhone.Text);
MySqlCommand command = new MySqlCommand(insertQuery, mysql);
if (command.ExecuteNonQuery() != 1)
MessageBox.Show("Failed to insert data.");
textBoxName.Text = "";
textBoxPhone.Text = "";
selectTable();
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
MySQL ๋ฐ์ดํฐ ์์ (UPDATE)
ํ ์ด๋ธ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ธฐ ์ํ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
UPDATE ํ
์ด๋ธ์ด๋ฆ SET column1 = value1 [, column2 = value2 ...] [WHERE ์กฐ๊ฑด];
๋ง์ฐฌ๊ฐ์ง๋ก ์์ ์ฝ๋๋ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
private void buttonUpdate_Click(object sender, EventArgs e)
{
try
{
using (MySqlConnection mysql = new MySqlConnection(_connectionAddress))
{
mysql.Open();
int pos = listViewPhoneBook.SelectedItems[0].Index;
int index = Convert.ToInt32(listViewPhoneBook.Items[pos].Text);
//accounts_table์ ํน์ id์ name column๊ณผ phone column ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค.
string updateQuery = string.Format("UPDATE accounts_table SET name = '{1}', phone = '{2}' WHERE id={0};", index, textBoxName.Text, textBoxPhone.Text);
MySqlCommand command = new MySqlCommand(updateQuery, mysql);
if (command.ExecuteNonQuery() != 1)
MessageBox.Show("Failed to delete data.");
textBoxName.Text = "";
textBoxPhone.Text = "";
selectTable();
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
MySQL ๋ฐ์ดํฐ ์ญ์ (DELETE)
ํ ์ด๋ธ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ํ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
DELETE FROM ํ
์ด๋ธ์ด๋ฆ [WHERE ์กฐ๊ฑด];
์์ ์ฝ๋๋ ๋ณด๊ฒ ์ต๋๋ค.
private void buttonDelete_Click(object sender, EventArgs e)
{
try
{
using (MySqlConnection mysql = new MySqlConnection(_connectionAddress))
{
mysql.Open();
int pos = listViewPhoneBook.SelectedItems[0].Index;
int index = Convert.ToInt32(listViewPhoneBook.Items[pos].Text);
//accounts_table์์ ํน์ id์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํฉ๋๋ค.
string deleteQuery = string.Format("DELETE FROM accounts_table WHERE id={0};", index);
MySqlCommand command = new MySqlCommand(deleteQuery, mysql);
if (command.ExecuteNonQuery() != 1)
MessageBox.Show("Failed to delete data.");
textBoxName.Text = "";
textBoxPhone.Text = "";
selectTable();
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
MySQL ๋ฐ์ดํฐ ์กฐํ(SELECT)
ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SELECT * FROM ํ
์ด๋ธ์ด๋ฆ;
์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
private void selectTable()
{
try
{
using (MySqlConnection mysql = new MySqlConnection(_connectionAddress))
{
mysql.Open();
//accounts_table์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์กฐํํฉ๋๋ค.
string selectQuery = string.Format("SELECT * FROM accounts_table");
MySqlCommand command = new MySqlCommand(selectQuery, mysql);
MySqlDataReader table = command.ExecuteReader();
listViewPhoneBook.Items.Clear();
while (table.Read())
{
ListViewItem item = new ListViewItem();
item.Text = table["id"].ToString();
item.SubItems.Add(table["name"].ToString());
item.SubItems.Add(table["phone"].ToString());
listViewPhoneBook.Items.Add(item);
}
table.Close();
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
์ ๋ฆฌ
์์ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๋ฐ๋ผ ํ์ จ๋์? DB ์ฐ๊ฒฐ๋ง ์ ๋๋ก ํ๋ค๋ฉด ์ด๋ ค์ด ๋ถ๋ถ์ ์์ด ๋ณด์ ๋๋ค. ๋ณธ๋ฌธ์ ์์ ๋ ๋ก์ปฌ ์๋ฒ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์๋๋ฐ, ์๊ฒฉ ์๋ฒ์ DB๋ ์ฃผ์๋ง ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฅํ๋ฉด ๋ฌธ์ ์์ด ๋ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ๋ณธ๋ฌธ์ ์์ ์ฝ๋๋ ์๋ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ฉด ๋๊ฒ ์ต๋๋ค.
'Programming > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์๋์ฐ10์ MySQL ์ค์น ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ (0) | 2021.05.09 |
---|
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์๋์ฐ10์ MySQL ์ค์น ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์๋์ฐ10์ MySQL ์ค์น ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ
2021.05.09