본문 바로가기
Programming/C#

C# DB연동 ListView로 데이터 추출 예제

by ahhang0k 2021. 5. 28.

폼이 열리면 자동연결 : 폼 자체를 더블클릭
폼이 닫히면 연결해제 : 폼 선택후 이벤트 Form Closing

 

그리고 디비를 생성하고 각각의 테이블에 무조건 하나의 튜플을 넣어주어야 합니다.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace WindowsFormsApp6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        MySqlConnection conn;
        MySqlCommand cmd; //sql구문을 실행시켜주는 객체
        private void button1_Click(object sender, EventArgs e)
        {
            string id;
            string name; //정수타입만 입력
            string phone;
            string date;
            

            id = tb_id.Text.ToString(); //문자열로 바꿔 넣기
            name = tb_name.Text.ToString();
            phone = tb_phone.Text.ToString();
            date = tb_date.Text.ToString();
            
            //쿼리문을 준비
            //String sql ="INSERT INTO userTbl(name,age,addr)VALUES('";sql += name + "'," + age + ",'" + addr + "');";
            String sql = "INSERT INTO userTbl(id,name,phone,date)VALUES('" + id + "','"+name+"','" + phone + "','"+date+"');";
            cmd.CommandText = sql;
            cmd.ExecuteNonQuery(); //insert, update등 실행갯수 반환

            MessageBox.Show("입력 성공~");
        }

        //폼시작시 DB연결
        private void Form1_Load(object sender, EventArgs e)
        {
            //교량 구축하기 + 트럭준비
            String connStr = "Server=192.168.100.56;Port=3306;Uid=csUser2;Pwd=1234;Database=shopDB2;CHARSET=UTF8";
            conn = new MySqlConnection(connStr);
            conn.Open();
            cmd = new MySqlCommand("", conn);
            
        }

        //폼끝날때 DB 연결해제
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            conn.Close();
           
        }

        //lv_view1 추출버튼
        private void button2_Click(object sender, EventArgs e) 
        {
            string str_id;
            string str_name;
            string str_phone;
            string str_date;
            ListViewItem lvi;

            lv_view1.Items.Clear(); //폼의 listview 초기화
            //쿼리문 준비
            String sql = "SELECT id,name,phone,date FROM userTbl";
            cmd.CommandText = sql; //트럭에 짐 싣기
            MySqlDataReader reader; //짐을 연결한 끈, 서버에서 데이터를 가져오도록 실행

            reader = cmd.ExecuteReader();

            //끈 당기기
            while (reader.Read())
            {
                str_id = reader["id"].ToString();
                str_name = reader["name"].ToString();
                str_phone = reader["phone"].ToString();
                str_date = reader["date"].ToString();


                lvi = new ListViewItem(new string[] { str_id, str_name, str_phone, str_date });
                lv_view1.Items.Add(lvi);
            }
            reader.Close();
        }

        //lv_view2의 추가버튼
        private void button3_Click(object sender, EventArgs e)
        {
            string proName;
            int price;
            int count;

        
            proName = tb_proName.Text.ToString();
            price = int.Parse(tb_price.Text.ToString()); //문자열타입을 정수형으로 형변환하여 넣기
            count = int.Parse(tb_count.Text.ToString());

            String sql = "INSERT INTO prodTbl(proName,price,count)VALUES('" + proName + "',"+price+","+count+");";
            cmd.CommandText = sql;
            cmd.ExecuteNonQuery(); //insert, update등 실행갯수 반환
            MessageBox.Show("입력 성공~");

        }


        string str_proName;
        string str_price;
        string str_count;
        ListViewItem lvi2;

        //lv_view2의 추출버튼
        private void button4_Click(object sender, EventArgs e)
        {
         
            lv_view2.Items.Clear(); //폼의 listview 초기화
            //쿼리문 준비
            String sql = "SELECT proName,price,count FROM prodTbl";
            cmd.CommandText = sql; //트럭에 짐 싣기
            MySqlDataReader reader; //짐을 연결한 끈, 서버에서 데이터를 가져오도록 실행

            reader = cmd.ExecuteReader();

            //끈 당기기
            while (reader.Read())
            {
                str_proName = reader["proName"].ToString();
                str_price = reader["price"].ToString();
                str_count = reader["count"].ToString();


                lvi2 = new ListViewItem(new string[] { str_proName,str_price,str_count });
                lv_view2.Items.Add(lvi2);
            }
            reader.Close();
        }

        //lv_view1, lv_view2 초기화
        private void button5_Click(object sender, EventArgs e)
        {
            lv_view1.Items.Clear();
            lv_view2.Items.Clear();
        }
    }
}

댓글