C#连接Oracle数据库通过存储过程操作数据库

C#连接操作Oracle数据库详解 通过使用OracleConnection、OracleCommand和OracleDataReader等类,您可以轻松地建立数据库连接、执行查询和执行SQL命令。在上述代码中,您需要将"YourOracleDataSource"替换为您的Oracle数据库连接信息,包括主机名、端口、服务名等。导入命名空间:在C#代码中,您需要导入Oracle.DataAccess.Client命名空间,以便使用Oracle数据库相关的类和方法。在上述代码中,您需要将"YourTableName"替换为您要查询的实际表名。 阅读详情

之前笔者一直用C#连接SQL Server数据库。近期由于工作需要,需要用C#连接Oracle数据库,并且要通过存储过程,来操作数据库中的数据,实现增、删、改、查(有分页功能)功能。并且,为了今后对数据库扩展方便,对现在的代码改动最小的情况下,实现数据库的平稳切换,必须采用OleDB的方式连接Oracle数据库、操作存储过程。

首先去网上搜索资料,确实找到了很多C#连接Oracle数据库,和用存储过程操作数据库的资料。但是仔细研究发现,清一色的全部是使用OracleClient(Oracle专用驱动)的方式对Oracle数据库及存储过程进行操作。没办法,只能自己动手、丰衣足食。经过3天左右的辛苦努力,终于实现了用OleDB连接Oracle数据库,并且用存储过程来操作Oracle数据库的方法。下面将实现方式总结一下。

用OleDB操作Oracle存储过程,有几个难题;

1、  返回记录集,也就是Oracle的游标;

2、  对于某些特殊的应用,有可能需要返回多个记录集;

3、  将存储过程中的数据,通过输出参数的形式返回给程序(因为要做分页,需要将记录数输出来);

4、  对Text大文本字段(对应Oracle的数据类型是CLOB)的增、改、查操作;

5、  对特殊字符的查询,如查询文本中是否包含“%”、“/”、“’”、“_”等符号;

接下来,主要针对以上问题,进行介绍;

 

一、连接Oracle数据库

连接Oracle数据库,主要有2种方式。一种是使用微软的数据库驱动进行连接;另外一种是使用Oracle的数据库驱动进行连接;

经过在网上查资料,说是Oracle的数据库驱动,中文可能会出现乱码;微软的驱动虽然中文没有乱码,但是对于CLOB类型的字段,无法操作;经过对比,决定使用Oracle的数据库驱动。因为应用中,肯定要有CLOB类型的字段操作;但是经过测试,未发现中文出现乱码的情况;

Ø         Oracle数据库连接方式:

Provider=OraOLEDB.Oracle.1;User ID=username;password=dbpassword;Data Source=databasename;Persist Security Info=True;Extended Properties='PLSQLRSet=1';

 

Extended Properties='PLSQLRSet=1'

注意:上面这个属性一定要带上,否则无法操作有返回游标参数的存储过程;

 

Ø         微软的数据库连接方式:

Provider=MSDAORA.1;Data Source=allrun;User ID=allrunadmin;Password=allrun;Persist Security Info=True;

 

建议使用Oracle数据库的连接方式。

二、存储过程,返回多个记录集

Oracle存储过程脚本:

 

C#程序操作存储过程:

 

 

 

 

因为主要是介绍操作数据库存储过程的方法,如何连接数据库请自己写;

 

一、对CLOB字段的增、改、查;

假设表名为:DESKTOP_PAGE,包含2个字段:USERCODE(普通字符串)、CONTENT(CLOB类型)

Oracle存储过程脚本为:

 

 

四、对特殊字符的查询,如查询文本中是否包含“%”、“/”、“’”、“_”等符号;

Oracle脚本:

以上是笔者操作Oracle数据库总结出来的一些经验,然后对大家有所帮助。s

C#连接操作oracle数据库详解 C#实现oracle数据库的增删改查操作。 阅读详情

相关推荐

C#与远程Oracle数据库交互实战

C#(发音为“看井”)是一种由微软开发的现代、类型安全的面向对象编程语言。自从2002年随.NET框架首次发布以来,C#经历了多次迭代和重要的语言特性更新。从早期的C# 1.0到最新的C# 9.0,每一次版本的更新都带来了语言能力的提升,比如泛型、迭代器、LINQ查询、异步编程特性等。Oracle数据库是一款功能强大的商业关系型数据库管理系统,由甲骨文公司(Oracle Corporation)开发和维护。

weixin_35972981的博客 1180

C# 连接 Oracle 数据库

C# 连接 Oracle 数据库 C# 连接数据库 C# 数据库连接 Oracle.DataAccess.dll 连接数据库

Roki_Zhang的博客 4579

C#版Oracle数据库通用操作类

C#版Oracle数据库通用操作类,包含了基础连接、执行基础语句、返回参数执行、dataset分页执行等简单oracle命令执行及哈稀表自动插入数据库等高级任务执行等。

C# Oracle基本操作

#region 插入操作 /// <summary> /// TableBaseOpt: 插入操作 /// </summary> /// <param name="record">记录</param> /// <param name="trans"&gt

云计算? 197

零基础学simulink仿真建模--基于Simulink进行农业机械用开关磁阻电机的仿真建模

特点结构简单:无电刷、换向器等易损件,维护成本低。坚固耐用:适合恶劣的工作环境,如农业机械作业现场。宽调速范围:通过适当的控制策略可以实现较宽的速度调节范围。挑战非线性特性:SRM的电磁特性和转矩特性具有高度非线性。复杂性:涉及电气、机械动力学以及控制系统的设计与集成。实时性要求:需要快速响应以适应不断变化的操作条件。多变量优化:包括电流控制、速度控制等多个方面需综合考虑。使用Simscape Electrical库来构建一个开关磁阻电机模型。

amy_mhd的博客 909

Kettle实战:如何用JavaScript脚本实现数据库表批量操作(附完整代码)

本文详细介绍了如何利用Kettle的JavaScript脚本实现数据库表批量操作,包括表名采集、循环遍历和动态SQL生成等关键步骤。通过实战案例和完整代码示例,帮助ETL工程师高效处理数据密集型任务,提升数据库操作的自动化水平。

weixin_29019241的博客 232

oracle表的历史数据转储过程,C#连接Oracle数据库通过存储过程操作数据库 - cuizm的专栏 - 优快云博客...

C#连接Oracle数据库通过存储过程操作数据库 收藏 此文于2011-06-07被推荐到优快云首页此文于2011-06-08被推荐到优快云首页如何被推荐?之前笔者一直用C#连接SQL Server数据库。近期由于工作需要,需要用C#连接Oracle数据库,并且要通过存储过程,来操作数据库中的数据,实现增、删、改、查(有分页功能)功能。并且,为了今后对数据库扩展方便,对现在的代码改动最小的情况...

weixin_29729247的博客 269

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑

本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。

beer8的博客 499

在C#中操纵Oracle数据库

Oracle数据库相关操作: --使用Oracle Database 11g express(下载),SQL*Plus --定义用户 SQL> connect sys/oracle as sysdba; SQL> create user sa identified by sa; SQL> grant dba to sa; SQL> connect sa/sa; --定义表: SQL

寻找快乐 1004

LTE信令流程及业务流程

eNB返回E-RAB建立响应消息,E-RAB建立列表信息中包含成功建立的承载信息,E-RAB建立失败列表消息中包含没有成功建立的承载消息。3)当下行数据达到时,网络侧先对UE进行寻呼,随后UE发起随机接入过程,并发起service request过程。用户面:S-GW向eNB发送承载建立请求,包含(IMSI, QoS, TFT, TEID, LBI等)控制面:MME向eNB发送E-RAB建立请求,包含E-RAB ID,QoS,S-GW TEID。3)在S1接口上建立S1承载,在Uu接口上建立数据无线承载。

qq_44390640的博客 4582

openbmc 支持mctp over pcie(二)

本文介绍了在OpenBMC系统中实现MCTP over PCIe的社区方案,主要针对AMD CPU和Intel CPU平台。方案基于社区开发的mctpd应用层和内核驱动,通过修改设备树(dts)配置内存区域,并编译Linux内核模块。验证时可通过查看/proc/net/protocols确认MCTP协议支持,使用ip addr命令检查mctppci0网络接口状态。相关代码和文档参考了AspeedTech和CodeConstruct的GitHub仓库。该方案为BMC作为MCTP端点提供了标准化实现方法。

wit_yuan的专栏 378

C# 连接 oracle 以及c# 存储过程的连接

c#连接oracle的范式,以及c#调用oracle的存储过程的方法。

lzmings的专栏 1128

多模态轨迹预测:行人、车辆的交互式推理

多模态轨迹预测:行人、车辆的交互式推理 ,人工智能,计算机视觉,大模型,AI,本文围绕多模态轨迹预测中行人与车辆的交互式推理展开,介绍了其定义,即综合多种信息预测交通参与者未来多种轨迹。涵盖基础概念如轨迹表示、模态、交互关系,技术框架包括数据处理、特征提取、预测模型(物理、机器学习、深度学习模型等)及结果评估。还探讨了交互式推理方法、面临的不确定性处理等挑战、应用场景、未来发展方向、相关工具及实际案例,展现了该技术在智能交通等领域的重要性与发展潜力。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 14万+

C# 中,连接oracle数据库 进行增删改查,存储过程等操作时 ,使用到哪些类?

第一,创建一个OracleCommand实例,代码是new global::Oracle.ManagedDataAccess.Client.OracleCommand(); 第二,创建一个OracleConnection实例, new global::Oracle.ManagedDataAccess.Client.OracleConnection();,赋值给第一个OracleCommand的...

moshengrenhere的博客 1305

Windows 下 Hermes Agent(爱马仕)安装全记录:从零到一的保姆级图文教程

本文主要介绍了Windows 下 Hermes Agent(爱马仕) 安装全记录:从零到一的保姆级图文教程,希望能对学习使用 Hermes Agent 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装WSL环境 2.2 步骤二 安装Python环境 2.3 步骤三 安装Hermes Agent 2.4 步骤四 修正 API Key 错误 2.5 步骤五 配置多个模型 2.6 步骤六 启动Hermes Agent 3. 常见问题及解决方案 4. 总结

weixin_43178406的博客 14万+

29、几何形态测量学在蝴蝶翅膀研究中的应用

本博客介绍了几何形态测量学在花斑木蛱蝶(Pararge aegeria)翅膀研究中的应用,探讨了环境因素对蝴蝶翅膀大小和形状的影响。通过选择合适的地标并采用Procrustes分析方法,研究揭示了不同景观类型下翅膀形状的差异及其潜在的适应性意义。文章还讨论了发育可塑性在飞行形态变异中的作用,并比较了几何形态测量学与其他传统方法的优势。最后提出了未来研究方向,包括多因素综合分析、发育机制探索及长期生态监测,为理解蝴蝶的适应性进化提供了重要线索。

ff678的博客 107

oracle数据库访问类

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Windows.Forms; using System.Data.OracleClient; //using Oracle.DataAccess; //using Oracle.DataAccess.T

Cryking的代码库 585

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C#使用Oracle.ManagedDataAccess.dll

Oracle存储过程名称或PL/SQL命令/// Oracle存储过程名称或PL/SQL命令/// Oracle存储过程名称或PL/SQL命令/// Oracle存储过程名称或PL/SQL命令

J_guangxin的博客 1223

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

c#怎么调用oracle存储过程,C#调用Oracle存储过程的方法

准备:环境:pl/sql+oracle9i+vs2008创建表test:create table TEST(ID NUMBER,//编号NAME VARCHAR2(10),//姓名SEX VARCHAR2(2),//性别AGE NUMBER,//年龄ADDRESS VARCHAR2(200)//住址)1.执行不带参数的Oracle存储过程:首先编写一个不带参数的or...

weixin_32541333的博客 1654

C# 连接Oracle,并调用存储过程(存在返回值),C# 调用sql存储过程

1.获取Oracle表格信息 public OracleHelpers(string ConnStr) { ConnectionString = ConnStr; conn = new OracleConnection(ConnectionString); error = ""; ...

weixin_30512043的博客 350

C#调用Oracle的存储过程

0前言平时操作Oracle数据库一般都是调用工具类或者框架,慢慢的都快忘了是如何实现的了(汗颜啊) 看来平时在学习技术和编程的同时,还真的要好好的熟悉一下基础知识啊 只记得大概的流程,今天特此整理,算是纪念吧(笑哭)一、实现流程1.1获取连接 OracleConnection connection = new OracleConnection(str_connec); 其中连接字符串str_

Stone6762的专栏 1999

C#对Oracle存储过程的调用

--创建表 declare num number;  begin  select count(1) into num from user_tables where table_name='SRCT';   --判断当前要创建的表在数据库中是否存在. if num>0  then execute immediate 'drop table '||'SRCT'; --表名要大写 end i

山鹰的专栏 1398

c# 执行带参数的oracle存储过程

1 OracleConnection conn = new OracleConnection("data source=myoracle;User Id=feng;Password=feng"); //连接数据库 2 conn.Open(); //...

dipan8982的博客 237

C# comandbuild oracle,C#调用Oracle的存储过程

0前言平时操作Oracle数据库一般都是调用工具类或者框架,慢慢的都快忘了是如何实现的了(汗颜啊)看来平时在学习技术和编程的同时,还真的要好好的熟悉一下基础知识啊只记得大概的流程,今天特此整理,算是纪念吧(笑哭)一、实现流程1.1获取连接OracleConnection connection = new OracleConnection(str_connec);其中连接字符串str_connec...

weixin_35639750的博客 190

使用C#连接ORACLE数据库

使用C#连接ORACLE数据库 2014-03-03      0 个评论    来源:使用C#连接ORACLE数据库   收藏    我要投稿 一、使用OracleClient组件连接Oracle  .Net框架的System.Data.OracleClient.dll组件(ADO.Net组件),为连接和使用Oracle数据库提供了很大的方便。  1、使

autumn20080101的专栏 690
上一篇: 搜狗浏览器终结了我的浏览器历史
下一篇: win7 64位系统下 Logitech(罗技) M555b蓝牙鼠标断线解决办法
射天狼
博客等级 码龄24年 490粉丝 47原创
评论 35
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值