orcle数据库课程设计.docx

上传人:b****5 文档编号:8216266 上传时间:2023-01-29 格式:DOCX 页数:14 大小:27.11KB
下载 相关 举报
orcle数据库课程设计.docx_第1页
第1页 / 共14页
orcle数据库课程设计.docx_第2页
第2页 / 共14页
orcle数据库课程设计.docx_第3页
第3页 / 共14页
orcle数据库课程设计.docx_第4页
第4页 / 共14页
orcle数据库课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

orcle数据库课程设计.docx

《orcle数据库课程设计.docx》由会员分享,可在线阅读,更多相关《orcle数据库课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

orcle数据库课程设计.docx

orcle数据库课程设计

 

《oracle网络数据库》课程设计

 

题目:

事务管理系统

 

系别:

数学与信息工程学院

专业(含班级):

10软件

(1)班

学号:

姓名:

指导教师:

职称讲师

填表日期:

2011年9月4日

 

一、选题的依据及意义:

Oracle是一款安全性很高的大型数据库,它比sql或是access等中小型的数据库最大的特点就是安全性高,很多大型软件一般都采用oracle作为后台数据库,而且oracle读取数据快也是它的特点,稳定性也比其他数据库好很多,以前在学习过程中很少接触oracle而是比较多用sql或是access作为后台数据库,现在通过跟田老师学了一学期的oracle数据,发现oracle数据库是很重要的,所以要学会灵活的使用,虽然oracle数据库的语法和sql和access的语法基本上没有什么差别,但oracle有它自己独特的技术,有时候学起来很吃力,很多的概念机会没有接触过,比如游标技术很少接触,也不知道这么使用,现在自己就尝试的使用oracle作为后台的数据库和vs2005作为前台进行开发事务管理系统小软件,体会oracle数据库的带来的优点,现在很多公司也要求他的员工一定要懂的oracle数据库技术,这是主流。

当然sql在中小型的软件公司比较多用,当是作为一个程序开发者必须要懂得oracle数据库开发技术。

现在,数据库技术还在不断发展,并且不断的与其它计算机技术相互渗透.数据库技术与网络通信技术相结合,产生了分布式数据库系统.数据库技术与面向对象技术相结合,产生了面向对象数据库系统等各种数据库系统.

在人类迈向21世纪知识经济的时候,信息变为经济发展的战略资源,信息技术已成为社会生产力重要的组成部分.人们充分认识到,数据库是信息化社会中信息资源管理与开发利用的基础.对于一个国家,数据库的建设规模,使用水平已成为衡量该国信息化程度的重要标志.因此,数据库的学习是非常重要的.

 

二、本课程设计内容(或要求)

1.首先在oracle里创建后台数据库

2.如何在vs2005中创建项目后在.net组件中添加引用oracle的命名空间也就是Systems.Data.OracleClient添加到项目中去。

3.添加完后引用命名空间UsingSystem.Data.OracleClient;

4.在前台程序连接后台的oracle数据库

5.如何使用OracleConnection进行连接数据库

6.如何使用OracleCommand执行sql语句

7.如何使用OracleDataReader读取数据

8.如何使用ExecuteNonQuery()执行非查询的SQL语句

9.如何打开和关闭念数据库

三、研究目标

能成功连接数据库,并对数据库的数据进行操作,在开发过程中体会oracle与sql数据库的异同,了解oracle数据库的读取速度,因为对oracle数据库不太熟悉所以要求要会在不断调试过程中更多的了解oracle技术的特点。

了解oracle的优点是什么,在那些方面最突出,并要查阅相关资料进一步理解oracle数据库操作,最终能实现前台对oracle数据库的正确操作。

 

《oracle网络数据库》课程设计实现方案

1.在oracle中创建表代码如下

(1)创建表shiwu。

创建表shiwu的脚本如下:

CREATETABLEshiwu

(IdNUMBERPRIMARYKEY,

CreateDateVARCHAR2(50)NOTNULL,

SubjectVARCHAR2(100)NOTNULL,

StatusVARCHAR2(50)NOTNULL,

tTypeIdNUMBER,

PlaceVARCHAR2(100),

TeacherVARCHAR2(50),

StartDateVARCHAR2(50),

EndDateVARCHAR2(50),

SignSDateVARCHAR2(50),

SignEDateVARCHAR2(50),

AttendantVARCHAR2(100),

IsFreeNUMBER

(1),

CostNUMBER,

DetailVARCHAR2(3000),

AttListVARCHAR2(1000));

(2)创建表shiwugSign。

创建表shiwuSign的脚本如下:

CREATETABLEshiwuSign

(IdNUMBERPRIMARYKEY,

TrIdNUMBER,

SignDateVARCHAR2(50),

EmpNameVARCHAR2(10),

StatusVARCHAR2(50)

);

3)创建表Meeting。

创建表Meeting的脚本如下:

CREATETABLEclz.Meeting

(IdNUMBERPRIMARYKEY,

SubjectVARCHAR2(200),

StartDateVARCHAR2(50),

EndDateVARCHAR2(50),

StartTimeVARCHAR2(50),

EndTimeVARCHAR2(50),

RoomNoVARCHAR2(20),

PresideVARCHAR2(100),

OAttendantVARCHAR2(1000),

IAttendantVARCHAR2(1000),

DetailVARCHAR2(4000),

StatusVARCHAR2(10),

CreateDateVARCHAR2(50),

EmpNameVARCHAR2(10)

);

(4)创建表MeetingRooms。

创建表MeetingRooms的脚本如下:

CREATETABLEclz.MeetingRooms

(RoomNoVARCHAR2(20),

RoomNameVARCHAR2(50),

RoomSizeNUMBER,

ResourcesVARCHAR2(500)

);

(5)创建表Information。

创建表Information的脚本如下:

CREATETABLEclz.Information

(InfoNoVARCHAR2(20)NOTNULL,

InfoNameVARCHAR2(100),

InfoTypeVARCHAR2(50),

ICountNUMBER,

IPriceNUMBER,

DetailVARCHAR2(2000),

CreateDateVARCHAR2(50)

);

(6)创建表InfoIn。

创建表InfoIn的脚本如下:

CREATETABLEclz.InfoIn

(IdNUMBERPRIMARYKEY,

InDateVARCHAR2(50),

InfoNoVARCHAR2(20),

InCountNUMBER,

EmpNameVARCHAR2(40),

DetailVARCHAR2(2000),

FlagNUMBER

);

(7)创建表InfoLend。

创建表InfoLend的脚本如下:

CREATETABLEclz.InfoLend

(IdNUMBERPRIMARYKEY,

InfoNoVARCHAR2(20),

LendDateVARCHAR2(50),

EmpNameVARCHAR2(40),

LendCountNUMBER,

FlagNUMBER

);

(8)创建表Users。

创建表Users的脚本如下:

CREATETABLECLZ.Users

(UserNameVARCHAR2(40)PRIMARYKEY,

EmpNameVARCHAR2(40)NOTNULL,

UserPwdVARCHAR2(40)NOTNULL,

UserTypeNUMBER

);

(9)创建表ygxinxi。

创建表ygxinxi的脚本如下:

CREATETABLECLZ.ygxinxi(

EmpNoVARCHAR2(10)PRIMARYKEY,

EmpNameVARCHAR2(50)NOTNULL,

EmpVARCHAR2(50)NOTNULL,

TelphoneVARCHAR2(50)NOTNULL

);

(10)创建表zhiban。

创建表zhiban的脚本如下:

CREATETABLECLZ.zhiban(

EmpNOVARCHAR2(10)PRIMARYKEY,

EmpNameVARCHAR2(50)NOTNULL,

ZbgangweiVARCHAR2(50)NOTNULL,

ZDateVARCHAR2(50)NOTNULL)

最后用COMMIT命令提交表

2.建立操作数据库的类方便调用

publicclassCADOConn

{publicOracleConnectionconn;//用于连接Oracle数据库

OracleCommandcommand;//用于执行SQL语句

//连接字符串

StringConnString="DataSource=.;PersistSecurityInfo=True;UserID=clz;Password=clz;Unicode=True";

…….

}

(1).CADOConn()函数的代码如下:

CADOConn()

{

conn=newOracleConnection(ConnString);

}

(2).OracleDataReaderGetDataReader(Stringsql)函数的代码如下:

//执行查询语句

publicOracleDataReaderGetDataReader(Stringsql)

{

try

{

OracleDataReaderreader;

//如果没有连接,则建立连接

if(conn==null)

conn=newOracleConnection(ConnString);

//定义OracleCommand对象,用于执行SELECT语句

command=newOracleCommand(sql,conn);

conn.Open();//打开数据库连接

reader=command.ExecuteReader();//执行SELECT语句,数据保存到OracleDataReader对象中

returnreader;//返回读取的OracleDataReader对象

}

catch(Exceptione)

{

throwe;

}

}

(3).boolExecuteSQL(Stringsql)函数的代码如下:

//执行INSERT、UPDATE或DELETE语句

publicboolExecuteSQL(Stringsql)

{

try

{

//如果没有连接,则建立连接

if(conn==null)

conn=newOracleConnection(ConnString);

//定义OracleCommand对象,用于执行SELECT语句

command=newOracleCommand(sql,conn);

conn.Open();//打开数据库连接

command.ExecuteNonQuery();//执行非查询的SQL语句

conn.Close();//关闭数据库连接

returntrue;//返回true,表示成功

}

catch(Exceptione)

{

throwe;

}

3部分代码实现

(1)登录模块实现代码

privatevoidbtnOK_Click(objectsender,EventArgse)

{

if(txtUserName.Text.Trim()=="")

{

MessageBox.Show("请输入用户名");

txtUserName.Focus();

return;

}

if(txtUserPwd.Text.Trim()=="")

{

MessageBox.Show("请输入密码");

txtUserPwd.Focus();

return;

}

//获取用户信息

FrmMain.curUser.GetData(txtUserName.Text.Trim());

//如果次登录失败,则退出系统

if(logincount>=3)

Application.Exit();

if(FrmMain.curUser.UserPwd!

=txtUserPwd.Text.Trim())

{

logincount++;

MessageBox.Show("用户名不存在或密码不正确");

return;

}

Close();

}

(2)会议处理模块代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Data;

usingSystem.Data.OracleClient;

namespaceOffice

{

publicclassCMeeting

{

publicintId;//会议编号

publicStringSubject;//会议主题

publicStringStartDate;//开始日期

publicStringEndDate;//结束日期

publicStringStartTime;//开始时间

publicStringEndTime;//结束时间

publicStringRoomNo;//会议室编号

publicStringPreside;//主持人

publicStringOAttendant;//外部与会人员

publicStringIAttendant;//内部与会人员

publicStringDetail;//会议内容介绍

publicStringStatus;//当前状态:

创建、发布

publicStringCreateDate;//创建时间

publicStringEmpName;//创建人

//下面两个数据在Load_by_NoDate()函数中使用

publicString[]a_MeetId;

publicString[]a_MeetSubject;

//初始化参数

publicvoidInit()

{

Id=0;

Subject="";

StartDate="";

EndDate="";

StartTime="";

EndTime="";

RoomNo="";

Preside="";

OAttendant="";

IAttendant="";

Detail="";

Status="";

CreateDate="";

EmpName="";

a_MeetId=newstring[500];

a_MeetSubject=newstring[500];

}

//构造函数

publicCMeeting()

{

Init();

}

//读取指定的记录,参数cId表示要读取的记录编号

publicvoidGetData(StringcId)

{

CADOConnm_ado=newCADOConn();

OracleDataReaderreader;

Stringsql;

sql="SELECT*FROMMeetingWHEREId="+cId;

//执行SELECT语句

reader=m_ado.GetDataReader(sql);

if(!

reader.Read())

Init();

else

{

Id=int.Parse(reader["Id"].ToString());

Subject=reader["Subject"].ToString();

StartDate=reader["StartDate"].ToString();

EndDate=reader["EndDate"].ToString();

StartTime=reader["StartTime"].ToString();

EndTime=reader["EndTime"].ToString();

RoomNo=reader["RoomNo"].ToString();

Preside=reader["Preside"].ToString();

OAttendant=reader["OAttendant"].ToString();

IAttendant=reader["IAttendant"].ToString();

Detail=reader["Detail"].ToString();

Status=reader["Status"].ToString();

CreateDate=reader["CreateDate"].ToString();

EmpName=reader["EmpName"].ToString();

}

}

//判断某个时间段是否存在会议记录,参数cId表示会议编号

publicboolHaveMeeting(StringcId)

{boolresult;

CADOConnm_ado=newCADOConn();

OracleDataReaderreader;

Stringsql;

sql="SELECT*FROMMeetingWHERERoomNo='"+RoomNo+"'AND('"+StartDate+"'BETWEENStartDateANDEndDateOR'"

+EndDate+"'BETWEENStartDateANDEndDate)AND('"

+StartTime+"'BETWEENStartTimeANDEndTimeOR'"

+EndTime+"'BETWEENStartTimeANDEndTime)ANDId<>"+cId;

//执行SELECT语句

reader=m_ado.GetDataReader(sql);

if(reader==null)

result=false;

else

result=true;

returnresult;

}

//查找某个时间段内的会议信息记录,参数TmpRNo表示会议室编号,TmpDate表示指定日期,TmpSTime表示时间段的开始时间,TmpETime表示时间段的结束时间

publicvoidLoad_by_NoDate(StringcRoomNo,StringcDate,StringcSTime,StringcETime)

{CADOConnm_ado=newCADOConn();

OracleDataReaderreader;

Stringsql;

sql="SELECTSELECTId,SubjectFROMMeetingWHERERoomNo='"

+cRoomNo+"'AND'"+cDate+"'BETWEENStartDateANDEndDateAND"

+"((StartTime<='"+cSTime+"'ANDEndTime>'"+cSTime

+"')OR(StartTime<'"+cETime+"'ANDEndTime>='"+cETime+"'))";

//执行SELECT语句

reader=m_ado.GetDataReader(sql);

inti=0;

while(reader.Read())

{

a_MeetId[i]=reader["Id"].ToString();

a_MeetSubject[i]=reader["Subject"].ToString();

i++;

}

}

//删除指定的记录,参数cId表示记录编号

publicvoidsql_delete(StringcId)

{CADOConnm_ado=newCADOConn();

Stringsql="DELETEFROMMeetingWHEREId="+cId;

m_ado.ExecuteSQL(sql);

}

//插入新的记录

publicvoidsql_insert()

{//获取当前时间

System.DateTimenow=newSystem.DateTime();

now=System.DateTime.Now;

CreateDate=now.ToString();

CADOConnm_ado=newCADOConn();

Stringsql="INSERTINTOMeetingVALUES(OFFICESYS.S_MEETINGID.NEXTVAL,'"

+Subject+"','"+StartDate+"','"+EndDate+"','"+StartTime+"','"

+EndTime+"','"+RoomNo+"','"+Preside+"','"+OAttendant+"','"

+IAttendant+"','"+Detail+"','创建','"+CreateDate+"','"+EmpName+"')";

m_ado.ExecuteSQL(sql);

}

publicvoidsql_update(StringcId)//修改指定的记录,参数cId表示记录编号

{

CAD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1