ODP.NET 之访问 Oracle 数据库

ODP.NET 之访问 Oracle 数据库

要相使用 Oracle Data Provider For .NET(ODP.NET),

必须先安装 ODP.NET 或者是 ODAC(Oracle Data Access Components)

(ODAC 中包含 ODP.NET 这个组件)

最好是把 ODT.NET 也安装上,这样,以后在 Visual Studio 中开发 Oracle 应用程序会方便很多的,

还是提供一个下载地址吧,

http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html

如果还没有安装的朋友请参考笔者前面的一些博文,其中都有比较好的介绍的,

本篇博文呢,将会完成一个 Demo ,这个 Demo 呢是从 Sql Server 中取出指定的数据表中的数据,

然后逐条将这些取出的数据插入到 Oracle 数据库中的指定表中,

其中呢,对 Sql Server 数据库的访问我就不说了,

对 Oracle 的访问呢,主要是通过 ODP.NET 来实现的,

前面的一篇博文<<通过 Reflector 工具来查看 ODP.NET 提供的类等信息>>

介绍了ODP.NET 中的一些类和命名空间,

在这一篇博文中就是使用这些类来完成 Demo ,当然涉及的类将会是很简单的最基本的类,

也就是 Connection,Command ,DataAdaptor 这些,

如果您需要使用 ODP.NET 下的其他一些类的话,

您可以使用 Reflector 来反射出 Oracle.DataAccess.dll 中的内容,

首先要想在应用程序中使用 ODP.NET 来访问 Oracle 数据库的话,

您必须向当前的应用程序添加一个引用,

这个 Oracle.DataAccess 必须是在您安装了 Oracle Data Provider For .NET 后才可以引用,

添加了这个引用后,便可以来使用 Oracle.DataAccess 这个命名空间和其子内容了,

先来看页面设计吧,

其中对 SqlDataSource 进行的数据绑定操作按如下顺序进行

其中 SCOTT.ORACLE 便是我通过 ODP.NET 来与 Oracle 建立的一个数据库连接,

然后就是来看一下 Web.config 中的数据库连接字符串的设置吧

其中呢,包括一个 Oracle 数据库连接字符串(OracleScott)

也包括一个 SqlServer 数据库连接字符串(SqlServerCon)

然后就来看 Code-Behind 了

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using Oracle.DataAccess.Client; 
using Oracle.DataAccess.Types; 
using Oracle.DataAccess;
 
using System.Web.Configuration;

namespace WebForm 

    public partial class Demo__39 : System.Web.UI.Page 
    { 
        protected void Page_Load(object sender, EventArgs e) 
        {

}

protected void btnAddData_Click(object sender, EventArgs e) 
        { 
            //获取 web.config 中的连接 SqlServer 数据库的字符串 
            string sqlServerConStr = 
                WebConfigurationManager.ConnectionStrings["SqlServerCon"]. 
                ConnectionString; 
            //获取 web.config 中连接 Oracle 数据库的字符串 
            string oracleConStr = 
                WebConfigurationManager.ConnectionStrings["OracleSCOTT"]. 
                ConnectionString;

//先是取出 SQL Server 中的数据,并且存放在 DataSet 中 
            DataSet ds = new DataSet();

using (SqlConnection sqlCon = new SqlConnection(sqlServerConStr)) 
            { 
                using (SqlCommand sqlCom = sqlCon.CreateCommand()) 
                { 
                    string sqlStr = 
                        "SELECT 员工号码,姓名,性别,目前工资 FROM 章立民研究室"; 
                    sqlCom.CommandType = CommandType.Text; 
                    sqlCom.CommandText = sqlStr; 
                    using (SqlDataAdapter sqlDA = new SqlDataAdapter(sqlCom)) 
                    { 
                        //将数据全部存入 DataSet 数据集中 
                        sqlDA.Fill(ds); 
                    } 
                } 
            } 
            using (OracleConnection oracleCon = new OracleConnection(oracleConStr)) 
            { 
                oracleCon.Open(); 
                using (OracleCommand oracleCom = oracleCon.CreateCommand()) 
                { 
                    oracleCom.CommandType = CommandType.Text; 
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
                    { 
                        //从 DataSet 逐条检索数据并且存储到 Oracle 数据表 Employee 
                        string sqlStr = String.Format( 
                            "INSERT INTO EMPLOYEE(EMPID,EMPNAME,EMPSEX,EMPSALARY) " + 
                            "VALUES({0},‘{1}‘,‘{2}‘,{3})", 
                            ds.Tables[0].Rows[i][0], 
                            ds.Tables[0].Rows[i][1], 
                            ds.Tables[0].Rows[i][2], 
                            ds.Tables[0].Rows[i][3]); 
                        oracleCom.CommandText = sqlStr;

oracleCom.ExecuteNonQuery(); 
                    } 
                } 
            }

//只能从数据库中取一次数据 
            btnAddData.Enabled = false; 
        } 
    } 
}

下面就来看效果了,

下面的截图是还没有从 Sql Server 中拷贝数据到 Oracle 数据库之前,

Oracle 中本来的数据,

执行拷贝数据后的结果为

如此便成功实现了使用 ODP.NET 访问 Oracle 数据库了!!!

时间: 2024-09-29 22:27:21

ODP.NET 之访问 Oracle 数据库的相关文章

.net中使用ODP.net访问Oracle数据库(无客户端部署方法)

.net中使用ODP.net访问Oracle数据库(无客户端部署方法) 分类: c# database2012-01-05 15:34 6330人阅读 评论(1) 收藏 举报 oracle数据库.netcomponentsdll ODP.net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. 以下内容转载自:http://blog.ywxyn.com/index.php/archives/326

.net(C#)访问Oracle数据库的几种免安装组件的对比

Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件.它们用来存取Oracle关系数据库系统.与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一. ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API). OCI 通过一个动态运行库(ORA*.DLL)

C# 访问Oracle数据库

关于C#访问Oracle数据库的时候,必须安装Oracle客户端,而且必须安装和服务器相同的版本,否则会出现各种版本的不兼容问题,所以很多时候我们并不需要去安装完整的Oracle客户端,为了方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即instant client.通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点. 1 下载和服务器对应的instant clie

利用360免费wifi搭建局域网让他人访问Oracle数据库

步骤很简答有 第一部:安装完360免费,点击运行 第二部:关闭本地计算机的防火墙(找了半天问题所在后来才发现防火墙没关..关于防火墙的作用以后地看看 还有子网掩码) 第三部:就是让他人计算机通过PSQL连接你的数据库了(要是不想配置服务名的话把服务名改写为ip地址/数据库名) ip地址可以通过查看ipconfig得到 或者查看本地连接 利用360免费wifi搭建局域网让他人访问Oracle数据库,布布扣,bubuko.com

运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题

运行平台: Windows 7  64位操作系统 运行环境: IIS 7 编程语言:C# 数据库: 32位的Oracle 10g 运行原因:64位操作系统C#客户端程序通过WCF访问ORACLE数据库 结果产生异常:System.InvalidOperationException: 未在本地计算机上注册“MSDAORA”提供程序 客户端程序在本地运行能够正常访问Oracle数据库数据, 但通过WCF连接不上Oracle数据库, 一开始以为是"MSDAORA"驱动没装上,通过检查,MSD

JDBC访问Oracle数据库例子源代码,包括创建table,删除table,插入记录,删除记录,查询记录等

package com.cb; public class SMSInfo { public static String ITEMINDEX = "sms_index"; public static String ITEMTO = "sms_to"; public static String ITEMFROM = "sms_from"; public static String ITEMMSG = "sms_msg"; publ

【Oracle】PHP通过PDO访问oracle数据库

文章目录 虽然LAMP中PHP和MySQL是标准配对,但是公司的项目是MySQL和Oracle分别作为运行库和详单库的,所以PHP连接oracle数据库也是必须要实现的.本篇文章就介绍下如果通过PDO连接到oracle数据库. 同样先说明下我使用到的环境: RedHat(CentOS)6.7 PHP5.6 Oracle11g php5.6的搭建可以参照这里:Oracle在linux环境下的安装可以参考这里 当然,你也可以不安装整个oracle,而只安装instant client来实现:如果是i

使用OCCI访问Oracle数据库(1)

最近打算看一下ORACLE数据库的访问,在网上搜了一下,据说除ADO和OLE DB之外,OCI是常用的方式,但OCI在C-Style了,在C++中,还是有很多不方便的地方,于是就把目光转向OCCI了. 开发环境介绍: 1.ORACLE 10g, 32位 2.开发工具 VC2008 EXPRESS版 使用OCCI自然要用到.h .lib .dll文件,在Oracle的安装目录下有,如下图 但这里只有VC7 和VC7.1的库,很让人无奈,网上说只有11g才包含有VC8 和VC9的库,于是我下载了11

sql server中使用链接服务器访问oracle数据库

一.  安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端. Orcale有两种形式的客户端: l         完整的客户端 包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及 SQL*Net .还包括用于配置客户端设置的工具.sqlplus.企业管理器等一系列的工具. l         立即客户端(instant clien