일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 버스 API
- solid
- JSON
- 객체지향
- Cell Border Style
- C# MDB Handle
- Winform
- MVC
- GDI+
- 경기도 버스정보시스템
- MDB Select
- MDB Connect
- DrawRectangle
- Excel Cell Format
- NUnit
- delegate
- TDD
- eventargs
- 경기도 버스
- sqlite3
- Json.NET
- 공공 데이터 포털
- C# MDB
- 시
- C# 파일 암/복호화
- 디자인 패턴
- WPF
- c#
- eventhandler
- DrawEllipse
- Today
- Total
White Whale Studio
C# 과 오라클(10g express / XE) 버젼의 연결/연동 본문
학부 과정의 학생들이 데이터베이스 프로젝트를 수행하면서 가장 만만한 것은 역시 C#과
가벼운 Oracle 10g XE 버전의 연결이라고 생각합니다.
굳이 오라클이 아니더라도 C#은 워낙 이런 방면에 잘되어 있어서 MySQL, MS-SQL도 연결이 잘 되어 있죠. 기회가 된다면 포스팅 해보도록 하겠습니다.
우선 오늘 포스팅할 내용은 오라클이 주제입니다.
우선 소스를 사용하기 위해서는 바로 아래에 있는 DataBaseProject처럼 namespace로 둘러싸인 부분 사용을 위해 Using DataBaseProject를 해주셔야되고 추가적으로 using System.Data.OleDb; 을 해주셔야 됩니다.
===== 소스 코드 =====
namespace DataBaseProject //Database를 오라클과 연결하기위한 클래스로 연결 및 데이터전달, 삭제와 같은 부분을 수행하기위해 필요한 부분
{
class ProjectDB
{
OleDbConnection conn;
string sql = "Provider=MSDAORA.1;Password=****;User ID=**** /*deault 값은 system 일겁니다. 아마.. */ ;Data Source=111.111.11.111:1111 /* IP : DB의 PORT번호 */ /XE; Persist Security Info=True";
// 수정할내용은 Password, User ID, Data Source의 IP 및 포트번호(일반적으로는 1521로 설정됨)
// PC에서 개인용으로 사용하기위해서는 XE만 입력하면된다. 다른 버젼의 경우 해당 버젼명을 명시해야한다.
public void Open() // DB 사용을 위해 Connection의 Open 수행할 시 사용.
{
conn = new OleDbConnection(sql);
conn.Open();
}
public void Close() // DB 사용 후 종료 시 사용
{
conn.Close();
}
public void ExecuteDB(string sql) // SQL문을 DB에 적용시켜야 할 때 사용(delete, modify)
{
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
}
public OleDbDataReader ExecuteReader(string sql)
{
OleDbCommand cmd = new OleDbCommand(sql, conn);
return cmd.ExecuteReader();
}
public DataSet GetDataSet(string sql) // SQL 질의 결과값을 데이터셋형태로 받아옴.
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(sql, conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
}
}
=============================== 버튼을 통해 gridview에 뿌려주는 소스 코드 ========
private void button2_Click(object sender, EventArgs e) // 테이블 확인버튼부
{
string sql = "select * from stu";
connect.Open();
about = connect.GetDataSet(sql);
connect.Close();
dataGridView1.DataSource = about.Tables[0];
num = 0;
}
간단한 소스입니다. select 문을 통해서 테이블을 검색하는 것이 목적인데요.
우선 connection을 열고 GetDataSet으로 sql 질의문을 넘겨 데이터셋을 about으로 받은 뒤 GridView에서 출력을 하는 겁니다. 아주 간단하죵..!!
======================= Insert 문 소스코드 =======================
try
{
sql = "insert into stu (stunum, grade, stuname, weight, height) values " +
"('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "')";
connect.Open();
connect.ExecuteDB(sql);
connect.Close();
// stu 테이블에 입력하기위한 sql 문을 전달, textbox들로부터 데이터를 받아 sql문으로 전달
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox1.Focus();
MessageBox.Show("입력완료");
x = false;
}
catch (Exception ex)
{
MessageBox.Show("에러가 발생하였거나 Null값을 입력하셨습니다.", ex.Message);
x = true;
textBox1.Focus();
}
해당 부분은 Insert 문을 활용하여 튜플을 삽입하기 위한 소스코드입니다. 사용자로부터 텍스트박스의 값을 입력받아 데이터를 DB에 집어넣죠. 입력 형식은 위에 나와있으니 참고하시기 바랍니다.
형식을 지키지 않아 입력이 안되는 경우가 많으니 주의해주시구요!
한 가지 더 말씀드리자면... 코딩을 조금 해보신 분들은 아시겠지만 이런 요청 기능은 try, catch로 감싸주시는게 프로그램 상에서 더 효율적으로 돌아가겠죵..
============================ Delete 소스 코드 ====================
sql = " delete from stu where stunum = '" + textBox6.Text + "' "; // stunum의 값을 textBox6.text로 부터 입력받아서 전달
textBox6.Text = "";
textBox6.Focus();
connect.Open();
connect.ExecuteDB(sql);
connect.Close();
이 부분은 try - cartch에 감싸는 방법이 같습니다. 다만 소스가 약간 다를 뿐이죠.
=========================== Update 소스 코드 =====================
기존 데이터베이스 내용을 수정하기 위한 내용입니다. 이또한 핵심 소스만 첨부합니다..
sql = "Update stu Set stunum='" + textBox2.Text + "', grade='" + textBox3.Text + "', stuname='" + textBox4.Text + "', weight='" + textBox5.Text + "', height='" + textBox6.Text + "' where stunum=" + textBox1.Text + " ";
//SQL의 Update 구문을 이용하여 textbox로부터 데이터를 입력받아 테이블의 데이터를 수정하는 구문
connect.Open();
connect.ExecuteDB(sql);
connect.Close();
========================= 끝 =======================
이번 포스팅에서는 C#과 오라클 10g XE 버전의 연결 및 실제 사용법에 대해서 살펴봤습니다.
C#에서 마법사를 통해서 GridView와 같은 출력도구에 출력하는 방법도 있지만 아무래도 데이터 출력만이 아니라 수정도 필요하다면 이와 같은 OleDB 연결방식을 사용하는 편이 더 좋겠죠!
'IT Engineering > C#.net' 카테고리의 다른 글
Unable to install DRM Client. Microsoft Visual C++ 2008 ERROR (0) | 2015.05.28 |
---|---|
[ASP] MSSQL 과의 연결 (0) | 2013.12.31 |
.Net Winform 기반 프로젝트에서 Console창 띄우기 (0) | 2012.09.19 |
[C#] Class Part.2 (0) | 2012.01.09 |
[C#] Class (0) | 2012.01.04 |