보라코딩
Day 18, C# (DB 연동_MySQL) 본문
결과물
1. 참조연결
- 참조 오른쪽 마우스 👉 Nuget 패키지 관리 👉 mysql 설치
2. XAML 구성
- Button과 DataGrid를 사용하여 간단하게 구성
<Window x:Class="DB연동.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DB연동"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Button Content="MySQL연결"
HorizontalAlignment="Left" Margin="152,236,0,0" VerticalAlignment="Top" Height="40" Width="96"
Click="Button_Click" RenderTransformOrigin="0.476,3.205"/>
<DataGrid Name="userDataGrid" AutoGenerateColumns="True" Height="200" Width="400"
VerticalAlignment="Top" HorizontalAlignment="Left"/>
</Grid>
</Window>
3. MYSQL
- wpf 데이터베이스 만들기
- users 테이블 만들어서 데이터 2개만 넣기
Create database wpf;
use wpf;
CREATE TABLE users (
id int auto_increment primary key,
name varchar(50) not null,
password varchar(255) not null
);
-- drop table users;
insert into users(name, password)
values
('mirero','1q2w3e4r'),
('system','1234');
select * from users;
4. C# 코드 작성
- using MySql.Data.MySqlClient; 입력하기!
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MySql.Data.MySqlClient;
namespace DB연동
{
/// <summary>
/// MainWindow.xaml에 대한 상호 작용 논리
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
// MySQL 연결 문자열 설정
string myConnection = "Server=localhost;Database=wpf;Port=3306;User=root;Password=비밀번호!!!!";
// MySqlConnection 클래스를 사용하여 연결 생성
MySqlConnection connection = new MySqlConnection(myConnection);
// MySqlDataAdapter를 사용하여 데이터를 가져올 쿼리 설정
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
myDataAdapter.SelectCommand = new MySqlCommand("select * from users;", connection);
// MySqlCommandBuilder를 사용하여 데이터 업데이트 작업을 자동으로 생성
MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
// 데이터베이스 연결 열기
connection.Open();
// 데이터를 저장할 DataSet 생성
DataSet ds = new DataSet();
// 데이터베이스에서 데이터를 가져와 ds에 채움
myDataAdapter.Fill(ds, "users");
// DataGrid에 데이터 표시
userDataGrid.ItemsSource = ds.Tables["users"].DefaultView;
MessageBox.Show("데이터 가져오기 완료!");
// 데이터베이스 연결 닫기
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
* DataSet
- 메모리 내에 데이터를 저장하고 관리
- 주로 데이터베이스에서 가져온 데이터를 일시적으로 저장
'개발자가 되었다?' 카테고리의 다른 글
Day 20, C# (0) | 2023.09.12 |
---|---|
Day 19, C# _ Unit Test (0) | 2023.09.11 |
Day 17, C# (WPF로 카카오 API 연동) (0) | 2023.09.07 |
Day 16, C# (0) | 2023.09.07 |
Day 15, C# (0) | 2023.09.05 |