본문 바로가기
코딩연습/C#

[C#]오라클 연동

by 호아니 2020. 6. 11.

문제: 미니 주소록 만들기

ADDR_ID NAME HP

1 홍길동 010-1111-1111

2 강호동 010-2222-2222

3 유재석 010-3333-3333

 

C#을 이용하여 다음과 같은 테이블(ADDR_TABLE) 을 만들고

 

ADDR_ID는 NUMBER(4) PRIMARY KEY로 만들어 주세요.

NAME, HP 의 타입은 모두 VARCHAR2(20)

 

콘솔 메뉴를 만든 후 번호를 누르면 해당 작업을 수행하여 주세요.

 

1. 테이블 생성

2. 데이터 삽입

3. 데이터 조회

 

---------------------------------------------------------

1. 테이블 생성

2. 데이터 삽입

3. 데이터 조회

메뉴 : 1

 

테이블이 생성되었습니다.

------------------------------------------------------------

1. 테이블 생성

2. 데이터 삽입

3. 데이터 조회

메뉴 : 2

 

이름을 입력해 주세요 : 홍길동

전화번호를 입력해 주세요 : 010-1111-1111

 

데이터가 정상적으로 입력되었습니다.

-----------------------------------------------------------------

1. 테이블 생성

2. 데이터 삽입

3. 데이터 조회

메뉴 : 3

 

ADDR_ID NAME HP

1 홍길동 010-1111-1111

 

==========================================================

 


using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace MyOracleTest01
{
    class Program
    {
        static void Main(string[] args)
        {
            void ShowMenu() //메뉴를 보여주는 함수{Console.WriteLine("===========================");Console.WriteLine("1.테이블생성");Console.WriteLine("2.테이블삽입");Console.WriteLine("3.테이블조회");Console.WriteLine("===========================");Console.Write("메뉴: ");}
            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;
            int a, cnt = 1; string b, c; do
            {
                ShowMenu(); a = Convert.ToInt32(Console.ReadLine()); switch (a)
                {
                    case 1: cmd.CommandText = "CREATE TABLE ADDR_TABLE(ADDR_ID NUMBER(4) PRIMARY KEY,NAME VARCHAR(20) ,HP VARCHAR(20)) "; cmd.ExecuteNonQuery(); Console.WriteLine("테이블이 생성되었습니다."); break;
                    case 2: Console.WriteLine("이름을 입력해주세요: "); b = Console.ReadLine(); Console.WriteLine("전화번호를 입력해주세요: "); c = Console.ReadLine(); cmd.CommandText = "INSERT INTO addr_table(ADDR_ID,NAME,HP) VALUES('" + cnt + "','" + b + "','" + c + "') "; cmd.ExecuteNonQuery(); Console.WriteLine("테이블에 삽입되었습니다."); cnt++; break;
                    case 3:
                        cmd.CommandText = "select * from addr_table"; OracleDataReader rdr = cmd.ExecuteReader(); Console.WriteLine(); Console.WriteLine("ADDR_ID NAME HP "); while (rdr.Read())
                        {
                            string ADDR_ID = rdr["ADDR_ID"].ToString(); //as string;string NAME = rdr["NAME"] as string;string HP = rdr["HP"].ToString();Console.WriteLine($" {ADDR_ID} {NAME} {HP}");}Console.WriteLine();break;default:Console.WriteLine("잘못 입력하였습니다.");break;
                        }
                } while (a != 0) ;
                conn.Close();
            }
        }
    }
}
  

'코딩연습 > C#' 카테고리의 다른 글

[C#]LINQ  (0) 2020.06.12
[C#]대리자의 이벤트  (0) 2020.06.12
[C#]대리자 체인  (0) 2020.06.12
[C#]대리자(delegate)  (0) 2020.06.12
[C#]강제로 예외던지기(throw)  (0) 2020.06.12