C#/C# WinForm

WinForm : Oop

HicKee 2022. 12. 27. 23:33

DaoOracle

using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OopTest {
    internal class DaoOracle {

        //생성자
        public DaoOracle() {

            conn = new OracleConnection(ORA_ADDR);
            cmd = new OracleCommand();
            connectDB();
        }

        //파괴자
        ~DaoOracle() { 
            disconnectDB(); 
        }


        string ORA_ADDR =
            "Data Source=(DESCRIPTION=(ADDRESS_LIST=" +
            "(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)" +
            "(PORT=1521)))" +
            "(CONNECT_DATA=(SERVER=DEDICATED)" +
            "(SERVICE_NAME=XE)));" +
            "User Id=test;Password=1234;";
        // 오라클 접속, sql명령어 객체 생성
        OracleConnection conn;
        OracleCommand cmd;

        public void connectDB() {
            // try ~ catch : 객체지향 프로그래밍에서 예외처리
            try {
                conn.Open(); // db 접속
                Console.WriteLine("오라클 접속 성공!");
            }
            catch (OracleException e) {
                Console.WriteLine("접속에러: " + e.Message);
            }
        }

        public void disconnectDB() {
            try {
                if (conn != null) {
                    conn.Close();
                    Console.WriteLine("오라클 해제 성공!");
                }
            }
            catch (OracleException e) {
                Console.WriteLine("종료 에러:" + e.Message);
            }
        }

        public void insertData(Member me) {
            Console.WriteLine("테이블 데이터 추가");

            try {

                string sql = string.Format("insert into join_t values(" +
                    "'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')", me.Id,me.Passwd, me.Name, me.Nick, me.Birth, me.Gender, me.Tel,me.Email);

                Console.WriteLine(sql);

                cmd.Transaction = conn.BeginTransaction();

                cmd.Connection = conn;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();

                cmd.Transaction.Commit();
            }
            catch (Exception e) {

                Console.WriteLine("데이터 추가 오류 : " + e.Message);
            }
        }
    }
}

Form1

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;

namespace OopTest {
    public partial class Form1 : Form {

        DaoOracle ora = new DaoOracle();
        
        public Form1() {
            InitializeComponent();
        }

        private void button4_Click(object sender, EventArgs e) {
            string gender = string.Empty;

            if (radioButton1.Checked) { gender = "남자"; }
            else if (radioButton2.Checked) { gender = "여자"; }

            MessageBox.Show($"아이디:{textBox1.Text}\n" +
                $"비밀번호:{textBox2.Text}\n" +
                $"이름:{textBox4.Text}\n" +
                $"별명:{textBox5.Text}\n" +
                $"생년월일:{textBox6.Text}\n" +
                $"성별:{gender}\n" +
                $"전화:{textBox7.Text}");

            ora.insertData(new Member(textBox1.Text, textBox2.Text, textBox4.Text, textBox5.Text, textBox6.Text, gender, textBox7.Text, "Email.com"));
        }

        private void button3_Click(object sender, EventArgs e) {
            Application.Exit();
        }
    }
}

Member

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OopTest {
    internal class Member {
        //모델 클래스
        //멤버를 변수로 
        string id, passwd, name, nick, birth, gender, tel, email;


        public Member(string id, string passwd, string name, string nick, string birth, string gender, string tel, string email) {
            this.id = id;
            this.passwd = passwd;
            this.name = name;
            this.nick = nick;
            this.birth = birth;
            this.gender = gender;
            this.tel = tel;
            this.email = email;
        }

        public string Id { get => id; set => id = value; }
        public string Passwd { get => passwd; set => passwd = value; }
        public string Name { get => name; set => name = value; }
        public string Nick { get => nick; set => nick = value; }
        public string Birth { get => birth; set => birth = value; }
        public string Gender { get => gender; set => gender = value; }
        public string Tel { get => tel; set => tel = value; }
        public string Email { get => email; set => email = value; }
    }
}

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

WinForm : 슬라이딩 메뉴  (0) 2023.01.16
WinForm : ListView  (0) 2022.12.28
WinForm : CheckBox  (0) 2022.12.26
WinForm : 새로 Form 띄우기  (0) 2022.12.23
WinForm : Button, label  (0) 2022.12.22