Visual Studio 2015 을 이용한 오라클 DB 프로그래밍 2018.5.21.

Slides:



Advertisements
Similar presentations
ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
Advertisements

목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
소리가 작으면 이어폰 사용 권장!.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
Database Laboratory, Hong Ik University
코크파트너 설치 가이드 Window 7.
C#에서 데이터베이스 연동 방법.
윈도우7 체크 설치 매뉴얼
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
6장 Mysql 명령어 한빛미디어(주).
Linux/UNIX Programming
MySQL 및 Workbench 설치 데이터 베이스.
DPR-1630&1615 IP공유기 셋팅 방법 고객지원팀 작성자 : 정청석.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
네트워크 프로그래밍 및 실습.
11장. 데이터베이스 서버 구축과 운영.
14장 질의응답 한빛미디어(주).
ANSYS17.2 Student 제품 무료 다운로드
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
SQL*PLUS.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
Chapter 05 데이터베이스 프로그래밍.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)
4-1장. MySQL 제13장.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
1. C++ 시작하기.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
KHS JDBC Programming 4 KHS
5장 Mysql 데이터베이스 한빛미디어(주).
DB연동하기 원격db접속.
You YoungSEok Oracle 설치 You YoungSEok
Android studio로 Application 만들기.
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
비주얼 프로그래밍 1분반 화/목.
JDBC Lecture 004 By MINIO.
홀인원2.0 설치 메뉴얼.
IPython Notebook + Spark + TensorFlow on MacOS
홍익대학교 메일 시스템 구축 그룹웨어 메일 이전 하기.
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
USN(Ubiquitous Sensor Network)
C# O/R 디자이너- LINQ 이용.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
1. 인증서버 :일반유선PC( 접속“CA관리” 클릭
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
7주차 실습 FPGA 보드 사용법.
PMIS 서버 설정 환경설정 작성자 : 배경환.
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
STS 에서 웹 서버 설치 방법.
오라클 11g 보안.
StyleCop 소개 SGS Framework 개발 팀.
메뉴(Menu) 컴퓨터응용 및 실습 I.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
무선랜 사용자 설명서 (Windows Vista 사용자).
IPC 펌웨어 업그레이드 방법 안내 ** 반드시 IPC를 NVR POE 포트 연결 전에 작업 하시기 바랍니다. IPC를 NVR POE 포트에 연결 하실 경우 IP 대역폭을 마추셔야 하는 작업이 필요합니다. **
Presentation transcript:

Visual Studio 2015 을 이용한 오라클 DB 프로그래밍 2018.5.21

오라클 ODAC 의 역할 ODAC OracleConnection OracleCommand OracleDataReader OracleDataAdapter DataSet DataTable OracleParameter Oracle DB C# Program SQL create insert update delete select

1. 오라클 DB 연동을 위한 ODAC설치(1/4) ∎ 제어판을 이용하여 컴퓨터 이름에 특수문자가 들어가 있지 않게 미리 변경한다. ∎ www.oracle.com 의 Developer Tools for Visual Studio 에서 ODAC(Oracle Universal Installer) 다운로드 및 압축 풀기 ∎ 압축을 해제 한 폴더에서 setup 프로그램 실행 단계 0 단계 1 단계 2

1. 오라클 DB 연동을 위한 ODAC설치(2/4) 단계 3 단계 4 단계 5 첫번째와 세번째는 반드시 포함 원하는 폴더로 변경해도 무방 체크 해제할것

1. 오라클 DB 연동을 위한 ODAC설치(3/4) 단계 6 단계 7 단계 8 포트번호는 그대로 사용 호스트이름은 자기 컴퓨터 이름으로 변경 데이타베이스 이름은 오라클 설치시 지정했던 이름으로(우리는 testdb로 했음) 위의 내용에 문제가 없으면 설치

1. 오라클 DB 연동을 위한 ODAC설치(4/4) 단계 9 단계 10

2. ODAC 를 이용한 오라클 DB 연결 테스트(1/3) ∎ 설치가 끝나면 비주얼 스튜디오 2015를 실행시킨다. ∎ 도구 메뉴의 데이타베이스에 연결 부메뉴를 실행한다. - 서버탐색기의 데이터연결에서 마우스 오른쪽 버튼을 누른 후 연결추가를 선택한다. < 무시하고 확인버튼을 누른다 > < 서버 탐색기 화면 >

2. ODAC 를 이용한 오라클 DB 연결 테스트(2/3) ① ② 데이타소스는 Oracle 데이타베이스 ③ id/pw는 Oracle 계정 접속유형 : Ez connect 호스트 : localhost 포트 : 1521 DB : testdb ④ ⑤ ` 마지막으로 누른다

2. ODAC 를 이용한 오라클 DB 연결 테스트(3/3) ① YDHER.testdb 의 ▶ 를 눌러서 확장 ② 오라클서버와 연결이 성공하면, - 자신의 계정에 있는 모든 테이블 의 내용이 보인다. 오라클 서버가 정상적으로 연결된 화면(ODAC 설치 완료됨)

3. C# 윈도우 폼을 이용한 오라클 DB 프로그래밍 ∎ 윈도우폼 프로젝트를 만들고 화면 디자인을 아래와 같이 설계 한다 DataGridView TextBox < 생성, 삽입, 검색, 수정, 삭제가 가능한 메인 화면 >

3.1 오라클 DB 연결(Data Source 연결) 및 종료 (1/7) ∎ 도구 메뉴의 데이타베이스에 연결 부메뉴를 실행한다. - 서버탐색기의 데이터연결 아래의 YDHER.testdb 에서 마우스 오른쪽 버튼을 누른 후 속성을 선택한다. 꼭 적어 놓을 것 !!!

3.1 오라클 DB 연결(Data Source 연결) 및 종료 (2/7) ∎ 솔루션탐색기의 참조에서 마우스 오른쪽 버튼을 누른 후 참조추가를 선택한다. ∎ 참조관리자 왼쪽 메뉴의 확장을 선택한 후 Oracle.ManagedDataAccess 체크 버튼을 선택한 후 확인버튼을 누른다.

3.1 오라클 DB 연결(Data Source 연결) 및 종료 (3/7) ∎ 솔루션탐색기의 참조에 Oracle.ManagedDataAccess 가 포함됬는지 확인한다. ∎ 아래과 같은 두개의 네임스페이스를 삽입한다. using Oracle.ManagedDataAccess.Client; using Oracle.ManagedDataAccess.Types;

3.1 오라클 DB 연결(Data Source 연결) 및 종료 (4/7) ∎ 솔루션탐색기의 참조에 Oracle.ManagedDataAccess 가 포함됬는지 확인한다. ∎ 아래과 같은 두개의 네임스페이스를 삽입한다. using Oracle.ManagedDataAccess.Client; using Oracle.ManagedDataAccess.Types;

3.1 오라클 DB 연결(Data Source 연결) 및 종료 (5/7) ∎ ODAC를 사용하기 위한 클래스 변수를 선언한다. public partial class Form1 : Form { OracleConnection conn = null; OracleCommand cmd = null; OracleDataAdapter adapter = null; DataSet dataset = null; DataTable datatable = null; OracleParameter param = null; string connStr = ""; public Form1() InitializeComponent(); btnClose.Enabled = false; grdDataView.DataSource = null; } ………

3.1 오라클 DB 연결(Data Source 연결) 및 종료(6/7) private void btnConnectG1_Click(object sender, EventArgs e) { if (conn == null) connStr = "DATA SOURCE=localhost:1521/testdb;USER ID=YDHER; PASSWORD=rhdgkr423"; conn = new OracleConnection(connStr); conn.Open(); }

3.1 오라클 DB 연결(Data Source 연결) 및 종료(7/7) private void btnClose_Click(object sender, EventArgs e) { if (conn != null) conn.Close(); conn = null; connStr = ""; }

3.2 오라클 DB 테이블 생성 및 삭제(1/3) ∎ 오라클 DB 테이블 생성 함수를 작성한다. private void btnCreateTable_Click(object sender, EventArgs e) { // select count(*) from all_tables where table_name='patient'; cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "select count(*) from all_tables where table_name = " + "'" + "patient" + "'“ ; result = cmd.ExecuteNonQuery(); if (result != 0) DBCreate(); }

3.2 오라클 DB 테이블 생성 및 삭제(2/3) public void DBCreate() { cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "Create table patient(" + "pat_id int primary key," + "pat_name varchar2(6) not null," + "pat_age int not null," + "pat_sex varchar(2) not null," + "pat_jumin varchar2(14) not null," + "pat_phone varchar2(15)," + "pat_addr varchar2(100) not null)"; cmd.ExecuteNonQuery(); }

3.2 오라클 DB 테이블 생성 및 삭제(3/3) ∎ 오라클 DB 테이블 삭제 함수를 작성한다. private void btnTableDelete_Click(object sender, EventArgs e) { cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "drop table patient"; cmd.ExecuteNonQuery(); grdDataView.DataSource = null; }

3.3 오라클 DB 테이블 데이터 삽입 및 출력(1/3) ∎ 오라클 DB 테이블 삽입 함수를 작성한다. private void btnTableInsert_Click(object sender, EventArgs e) { cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "INSERT INTO patient(pat_id, pat_name, pat_age, pat_sex, pat_jumin, pat_phone, pat_addr) " + "VALUES(:pat_id, :pat_name, :pat_age, :pat_sex, :pat_jumin, :pat_phone, :pat_addr)"; param = new OracleParameter(":pat_id", OracleDbType.Int32, sizeof(Int32), "pat_id"); param.Value = txtNumber.Text; cmd.Parameters.Add(param); param = new OracleParameter(":pat_name", OracleDbType.Varchar2, 6, "pat_name"); param.Value = txtName.Text; param = new OracleParameter(":pat_age", OracleDbType.Int32, sizeof(Int32), "pat_age"); param.Value = txtAge.Text; //같은 방식으로 필요한 파라메타 설정 // ……………………… cmd.ExecuteNonQuery(); ShowDataView(); }

3.2 오라클 DB 테이블 데이터 삽입 및 출력(2/3) bool ShowDataView() { grdDataView.DataSource = null; cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "select * from patient"; adapter = new OracleDataAdapter(); adapter.SelectCommand = cmd; dataset = new DataSet("병원DB"); adapter.Fill(dataset, "patient"); datatable = dataset.Tables["patient"]; grdDataView.DataSource = datatable; // 출력 결과 반환…………… } OracleCommand OracleAdapter Dataset datatable datatable

3.3 오라클 DB 테이블 데이터 삽입 및 출력(3/3) Test2 프로그램의 DataReader를 이용 하는 방법도 매우중요 … OracleConnection conn = null; OracleCommand comm = null; OracleDataReader reader = null; string connStr = null; public Form1() { InitializeComponent(); DisplayCustomers(); } private void DisplayCustomers () { // DB 연결 후 Open ….. // select 명령어 만들고 string sql = "SELECT * FROM Customers"; // 실행 comm = new OracleCommand(sql, conn); reader = comm.ExecuteReader(); // 여러개 찾으면 각각에 대해서 루프에서 처리 while(reader.Read()) string item = ""; item += reader["ID"].ToString() + "\t"; item += reader["SID"].ToString() + "\t"; item += reader["SName"].ToString() + "\t"; item += reader["Phone"].ToString(); listBox1.Items.Add(item); } reader.Close();

3.4 오라클 DB 테이블 데이터 삭제 (1/1) private void btnDataDelete_Click(object sender, EventArgs e) { string id = null; int num=0; DataGridViewRow dataviewrow = grdDataView.CurrentRow; id = dataviewrow.Cells["pat_id"].Value.ToString(); num = int.Parse(id); // SQL삭제 명령어 : DELETE patient WHERE pat_id = 3 cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "delete patient where pat_id = :pat_id"; param = new OracleParameter(":pat_id", num); cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); ShowDataView(); }

3.5 오라클 DB 테이블 데이터 변경 (1/1) private void btnDataModify_Click(object sender, EventArgs e) { string id = null; int num=0; DataGridViewRow dataviewrow = grdDataView.CurrentRow; id = dataviewrow.Cells["pat_id"].Value.ToString(); num = int.Parse(id); cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "UPDATE patient " + "SET pat_id = :pat_id, pat_name = :pat_name, pat_age = :pat_age," + "pat_sex = :pat_sex, pat_jumin = :pat_jumin, pat_phone = :pat_phone," + "pat_addr = :pat_addr " + "WHERE pat_id = :pat_id"; param = new OracleParameter(":pat_id", num); cmd.Parameters.Add(param); param = new OracleParameter(":pat_name", txtName.Text); param = new OracleParameter(":pat_age", int.Parse(txtAge.Text)); //같은 방식으로 필요한 파라메타 설정 // ……………………… cmd.ExecuteNonQuery(); ShowDataView(); }

3.6 그리드뷰의 내용을 선택시 해당 텍스트상자에 데이터 출력하기(1/1) private void grdDataView_CellContentClick(object sender, DataGridViewCellEventArgs e) { txtNumber.Text = grdDataView.Rows[e.RowIndex].Cells[0].Value.ToString(); txtName.Text = grdDataView.Rows[e.RowIndex].Cells[1].Value.ToString(); txtAge.Text = grdDataView.Rows[e.RowIndex].Cells[2].Value.ToString(); txtSex.Text = grdDataView.Rows[e.RowIndex].Cells[3].Value.ToString(); txtJumin.Text = grdDataView.Rows[e.RowIndex].Cells[4].Value.ToString(); txtAddress.Text = grdDataView.Rows[e.RowIndex].Cells[5].Value.ToString(); txtPhone.Text = grdDataView.Rows[e.RowIndex].Cells[6].Value.ToString(); }