您所在位置: 网站首页 / 文档列表 / .NET / 文档详情
C#操作ORACLE数据库示例.docx 立即下载
上传人:努力****元恺 上传时间:2024-09-07 格式:DOCX 页数:25 大小:21KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

C#操作ORACLE数据库示例.docx

C#操作ORACLE数据库示例.docx

预览

免费试读已结束,剩余 15 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

CREATETABLE"SCOTT"."TEST"("UID"VARCHAR2(10byte)NOTNULL,"UNAME"VARCHAR2(10byte)NOTNULL,"UAGE"VARCHAR2(10byte)NOTNULL)在.NET中调用Oracle9i存储过程可以用多个数据提供者,比如OralceClient,OleDb本文将用OralceClien为例。.NET语言用C#。一、调用一个带输入、输出参数的存储过程首先,在Oralce中创建存储过程如下:createorreplaceprocedurescott.GetRecords(name_outoutvarchar2,age_ininvarchar2)asbeginselectNAMEintoname_outfromscott.testwhereAGE=age_in;end;然后,在C颗目xx如下调用:stringconnectionString="DataSource=YXZHANG;UserID=YXZHANG;Password=YXZHANG”;stringqueryString="getrecords";cmd.CommandType=CommandType.StoredProcedure;cmd・Parameters.Add("name_out",OracleType.VarChar,20);cmd.Parameters["name_out"].Direction=ParameterDirection.Output;cmd.Parameters.Add("age_in”,21);cmd・ExecuteNonQuery();Console.WriteLine("Nameis:{0}”,cmd・Parameters["name_out"]・Value・ToString());Console.WriteLine("Theexceptionmessageis:{0}”,ex.Message.ToString());}finally{Console.WriteLine-(-End----」---结:以上是很平常的调用方法,但是我在做这个示例程序的时候,却不是那么一帆风顺。这里要指出OracleClient的一个不尽如人意之处,就是对于参数名称,必须和存储过程定义中的参数同名,否则就会报错。比如将代码中的“name_ou成为别的名称的话,就会报异常。但我试着用OleDb代替OralceClient却没有这个问题。不知道在新版本的数据提供程序中会否改进这一点?二、调用不返回数据的存储过程首先,在Oralce中创建存储过程如下:createorreplaceprocedureinsertRecord(UserIDinvarchar2,UserNameinvarchar2,UserAgeinvarchar2)isbegininsertintotestvalues(UserID,UserName,UserAge);end;然后,在C颗目xx如下调用:stringconnectionString="DataID=YXZHANG;Password=YXZHANG”;stringqueryString="insertRecord";cmd・CommandType=CommandType・StoredProcedure;cmd.Parameters.Add("UserID","7");cmd.Parameters.Add("UserName”,"Dell");cmd.Parameters.Add("UserAge”,"40”);cmd.ExecuteNonQuery();Console.WriteLine("Theexceptionmessageis:{0}”,ex.Message.ToString());}finally{Console.WriteLine(-End结-不返回数据的存储过程一般有Delete,Insert,Update。虽然它们的SQL语句不同,但是调用方面都是一样的。只要传入正确的参数,一般不会出什么问题。不过还是要注意,在使用OralceClien作为数据提供者的时候,参数名称一定要和存储过程定义中的一致!至于参数添加的顺序倒是无所谓的,因为有参数名称作为区别。三、IDENTITY八SEQUENCESqlServer中,定义一个列为递增列很容易,但我在Oracle中却怎么也找不到设置的方法。不过查了点资料后知道Oracle中有个叫Sequence的对象,产生一个唯一的序列号,类似于SqlServer中的IDENTITY于是,我做了如下实验:首先,在Oracle中
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

C#操作ORACLE数据库示例

文档大小:21KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用