JIMINOTE

[C#/Oracle] 미니주소록 만들기 본문

데이터베이스/Oracle

[C#/Oracle] 미니주소록 만들기

김짐인 2020. 8. 25. 21:53
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ADRESS_LIST
{
    class Program
    {


        static void go()
        {

            Console.WriteLine("1. 테이블 생성");
            Console.WriteLine("2. 테이블 삽입");
            Console.WriteLine("3. 테이블 조회");
            Console.Write("메뉴: ");


        }

        static void Main(string[] args)
        {


                // 오라클 연결 문자열       

                //string strConn = "Data Source=orcl;User Id=scott;Password=TIGER;";

                // 네트워크 연결 정보 직접 대입

                string strConn = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xe)));User Id=scott;Password=TIGER;";




                // 오라클 연결

                OracleConnection conn = new OracleConnection(strConn);




                conn.Open();




                // 명령 객체 생성

                OracleCommand cmd = new OracleCommand();

                cmd.Connection = conn;




                // SQL문 지정 및 INSERT 실행

             //  cmd.CommandText = "select * from emp";
            /*cmd.CommandText = "create table addr_table("
                                +"addr_id varchar(4) primary key,"
                                +"name     varchar2(20),"
                                +"hp varchar2(20)"
                            +")";*/


            int n;

            do
            {
                go();
                string s = Console.ReadLine();
                n = Convert.ToInt32(s);

                if (n == 1)
                {
                    cmd.CommandText = "create table addr_table("
                                   + "addr_id varchar(4) primary key,"
                                   + "name     varchar2(20),"
                                   + "hp varchar2(20)"
                               + ")";
                    cmd.ExecuteNonQuery();
                    Console.WriteLine("테이블이 생성되었습니다.");
                   

                }

                else if (n == 2)
                {
                    int i = Convert.ToInt32(Console.ReadLine());
                    string a = Console.ReadLine();
                    string b = Console.ReadLine();

                    cmd.CommandText = "insert into addr_table(addr_id, name, hp) "
                        +$"values('{i}','{a}','{b}')";

                    cmd.ExecuteNonQuery();
                    Console.WriteLine("테이블이 정상적으로 삽입되었습니다");
                }

                else if (n == 3)
                {

                    cmd.CommandText = "select * from addr_table";
                    cmd.ExecuteNonQuery();

                    OracleDataReader rdr = cmd.ExecuteReader();

                    while(rdr.Read())
                    {
                        string addr_id = rdr["addr_id"] as string;
                        string name = rdr["name"] as string;
                       //int sal = rdr.GetInt32(5);
                        string hp = rdr["hp"].ToString();
                        // 데이타를 리스트박스에 추가

                        Console.WriteLine($"{addr_id}:{name}:{hp}");

                    }

                }
                else
                {

                    Console.WriteLine("다시 입력해주세요.");
                }
                Console.WriteLine("----------------------------");


            }
            while (n != 0);

           


            // 결과 리더 객체를 리턴

           




                conn.Close();





            }

       
    }
}