C#] WPF에서 MariaDB 연결 및 데이터 불러오기

2018. 3. 2. 11:37·Programming/C# WPF
728x90
반응형

기본정보

비주얼 스튜디오 2010에서 C# WPF를 통해 MariaDB에 저장된 데이터를 불러오는 방법에 대해 알아보겠습니다.

처음 준비해야할 사항은 비주얼 스튜디오 2010, Maria DB 설치, MySQL Connector/Net(6.8버젼)이 있어야 합니다.

결과 화면

일단 결과 화면을 보여드리겠습니다.

 

위와 같이 간단하게.. 이름과 나이를 불러오는 코드입니다. 먼저 MariaDB를 설치하셨으면 기본 아이디는 root 패스워드는 0000으로 설정돼 있을 거에요. 간단한 DB를 만들고 데이터를 넣는 작업부터 해보도록 할께요.

 

DB 설정

MariaDB CMD창을 열고 패스워드 입력 후 디비부터 만들어 보도록 하겠습니다.

1. DATABASE를 원하는 이름으로 만들어주세요.

CREATE DATABASE itpro;

2. 해당 데이터 베이스로 이동(use itpro) 후, 테이블을 만들어주세요.

 

CREATE TABLE address (
    name VARCHAR(50),
    age INT
);

3. 해당 테이블에 값을 넣어줍니다.

 

INSERT INTO address VALUES('john', 25);

이렇게 여러개의 데이터를 넣어 주시면 해당 테이블의 데이터가 들어간 것을 확인할 수 있습니다.

 

프로젝트 실행

그런 다음 비주얼 스튜디오를 열고 코드를 넣고 Mysql커넥터를 참조해서 데이터를 확인하는 작업을 할 예정입니다.

1. 프로젝트 만들기(WPF)

 

2. 참조 메뉴에서 MySQL Connect를 참조해야 DB와 연동이 되기때문에 참조 작업을 수행해 줍니다.

 

  참조 추가를 누르고 찾아보기에서 저 파일(C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.8\Assemblies\v4.0에 있음) 추가해주세요.

3. 이제 윈도우 폼을 만들고 데이터를 연결하는 코드만 작업하면 끝이납니다.

<Window x:Class="ConnectMaria.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="620">
    <Grid Height="350" Width="625" Background="Yellow" >
        <TextBlock Height="32" HorizontalAlignment="Left" Margin="16,15,0,0" Name="textBlockHeading" Text="주소록"
             VerticalAlignment="Top" Width="310"  FontSize="20" FontStretch="Normal"/>
        <Grid HorizontalAlignment="Left" Height="310" VerticalAlignment="Top" Width="625">
            <DataGrid AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="14,55,0,46" Name="dataGridCustomers"
                 Width="575" ItemsSource="{Binding Path=LoadDataBinding}" CanUserResizeRows="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding Path=name}" Header="이름" Width="300" IsReadOnly="True" />
                    <DataGridTextColumn Binding="{Binding Path=age}" Header="나이" Width="275" IsReadOnly="True" />
                 </DataGrid.Columns>
            </DataGrid>
            <Button Content="데이터 불러오기" Height="25" HorizontalAlignment="Left" Margin="487,275,0,0" Name="btnloaddata" 
                VerticalAlignment="Top" Width="100" Click="btnloaddata_Click"/>
        </Grid>
    </Grid>
</Window>
 

4. 윈도우 폼을 추가해주고 .cs에서 코드 몇 줄 작업해주면 완료됩니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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;
using System.Data;

namespace ConnectMaria
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        // 버튼 클릭시 데이터를 불러오는 작업
        private void btnloaddata_Click(object sender, RoutedEventArgs e)
        {
            string connectionString = "SERVER=localhost;DATABASE=itpro;UID=root;PASSWORD=0000;";

            MySqlConnection connection = new MySqlConnection(connectionString);
            try
            {
                connection.Open();
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM address", connection);
                MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                // 윈도우 폼의 LoadDataBinding에 데이터 넣기
                adp.Fill(ds, "LoadDataBinding");
                dataGridCustomers.DataContext = ds;
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                connection.Close();
            }
        }
    }
}

 

위 처럼 자신의 데이터베이스를 입력하고 아이디, 패스워드를 넣고 아까전에 참조한 MySql.Data의 객체들을 가져다가 작업한 결과입니다.

이렇게 하고 실행하면 큰 문제없이 작동되는 것을 확인할 수 있습니다. 

728x90
반응형
저작자표시 (새창열림)

'Programming > C# WPF' 카테고리의 다른 글

[C# WPF] Button Style Custom 방법  (0) 2019.06.12
[C# WPF] ICommand를 활용한 버튼 커맨드 방법  (0) 2019.03.04
[C# WPF] Window화면 Custom하기  (0) 2018.09.05
C# WPF] INotifyPropertyChanged 인터페이스를 이용한 데이터 바인딩 방법  (1) 2018.04.17
C# WPF] MVVM 패턴을 활용한 프로젝트 관리 방법  (3) 2018.03.23
'Programming/C# WPF' 카테고리의 다른 글
  • [C# WPF] ICommand를 활용한 버튼 커맨드 방법
  • [C# WPF] Window화면 Custom하기
  • C# WPF] INotifyPropertyChanged 인터페이스를 이용한 데이터 바인딩 방법
  • C# WPF] MVVM 패턴을 활용한 프로젝트 관리 방법
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    반응형
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (158)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      이슈 트래킹
      클라우드 컴퓨팅
      데이터 바인딩
      dynamicresource
      웹 개발
      클라우드 네이티브
      C# WPF
      rest api
      java8
      Apache Kafka
      데이터베이스 성능
      DevOps
      투자
      마이크로서비스
      주식투자
      투자전략
      협업 도구
      서버 관리
      javascript
      자바스크립트 트릭
      분산 메시징 시스템
      재테크
      ES6
      XAML
      Kubernetes
      Java
      데이터 파이프라인
      docker
      WPF
      소프트웨어 개발
    • 최근 댓글

    • 최근 글

    • 250x250
    이프로그
    C#] WPF에서 MariaDB 연결 및 데이터 불러오기
    상단으로

    티스토리툴바