ADO.Net连接Oracle

1、添加 Oracle.ManagedDataAccess.dll

2、连接Oracle的实例得添加到Oracle的监听器中,不然会报“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”的错,添加如下,本例使用的是Oracle10g,找到C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN下的lisener.org,打开后修改添加标红的部分

# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.130)(PORT = 1521))
    )
  )

  3、连接字符串:

string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.121.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));Persist Security Info=True;User ID=scott;Password=tiger;";

其中Oracle数据库服务器IP:192.168.121.130

ServiceName:ORCL

用户名:scott

密码:tiger

4、查看Oracle的实例名,用sys作为dba登录,执行语句 select name from v$database;

5,C#代码

using System;
using System.Collections.Generic;
using System.Configuration;
using Oracle.ManagedDataAccess.Client;
using System.Linq;
using System.Text;

namespace ADOSample
{
    class Program
    {
        static void Main(string[] args)
        {
            string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.121.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));Persist Security Info=True;User ID=scott;Password=tiger;";
            using (OracleConnection conn = new OracleConnection(connStr))
            {
                string sql = "select * from dept ";
                conn.Open();
                using (OracleCommand cmd = new OracleCommand(sql, conn))
                {
                    using (OracleDataReader dataReader = cmd.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            string obj = (string)dataReader[1];
                            Console.WriteLine(obj);
                        }
                    }                    

                }
            }
            Console.ReadKey();
        }
    }
}

  

时间: 2024-08-06 11:57:56

ADO.Net连接Oracle的相关文章

使用ADO连接oracle数据库“未找到提供程序。该程序可能未正确安装”解决方案

问题描述:VS2010开发的C++程序,在一台Win7旗舰版的已安装Oracle客户端的PC上连接不上Oracle,提示"未找到提供程序.该程序可能未正确安装",其他语言编写的程序比如C#是可以成功连接Oracle的: 解决办法:首先是找谷歌度娘帮忙,找了几篇文章,都说是没有Oracle的Oledb驱动,去安装目录XXXX\bin下还真没找到OraOLEDB*.dll,然后按照文章帮助将OraOLEDB10.dll文件拷贝至有问题的Win7上,在DOS下开始注册,这时却提示"

记录关于使用ADO.NET 连接池连接Oracle时Session信息不更新的坑

最近的一个项目中,由于界面查询的数据量比较大,关联的表比较多,有些数据查出来需要临时保存起来供后面的查询使用,于是想到了用oracle的临时表来实现这个需求.大家都知道,oracle的临时表有两种:事务级别临时表和会话级别临时表,我这里使用的是会话级别的临时表.当时把功能时候后就以为万事大吉了,没想到就在这里买下了一个坑.  坑的浮现:之后在为系统加调试日志时偶然发现了临时表的数据没有像oracle临时表的定义那样“不同会话独享临时表,临时表的数据在会话结束后被自动清空”.首先看第一次查询的日志

64位程序,利用ADO连接Oracle数据库

刚好手头项目解决了ADO连接Oracle数据库的问题,记录下来,防止忘记. 项目情况:用32位环境完成算法动态库,结果后来需要升级到64位环境,由64位的软件来调用,则在64位设置下生成算法动态库,发现数据库连接失败.数据库使用的是Oracle10,而连接技术使用的是比较熟悉的ADO. 1.首先怀疑的是ADO预编译所引用的msado15.dll版本问题,找来了64位msado15.dll,一样重现问题. 2.怀疑是连接语句依靠的\network\admin\tnsnames.ora文件不对,所以

基于ADO的远程Oracle连接

最近在一个通过MFC做一个界面,通过这个界面可以对布置在另一台服务器上的数据库MySQL.SQl Server.Oracle进行增删创建表的操作.其中我通过ADO很快就完成了对MySQL和SQL Server的控制.但是Oracle的连接就麻烦很多,我完成这个项目的大部分的时间都在研究怎么与Oracle数据库互通. 先声明下我的电脑环境,没有装ORACLE客户端,WIN7_64位操作系统,使用的编译器是VC6.服务器用的是WIN10的系统,Oracle的版本为11.2.0.1.0,我客户端安装了

C++连接Oracle之OCCI(windows)

上一节我们讲过了ADO连接Oracle,这一节我们尝试通过OCCI的方式,来在windows平台下连接Oracle数据库,下一节讨论在Linux环境下通过OCCI的方式连接远程的Oracle数据库. 首先说一下Oracle C++ CallInterface (OCCI)是Oracle自带的一套应用程序编程接口,它允许C++程序与一个或者多个Oracle数据库进行交互,OCI虽然开发起来难度大一些,但是它的速度极快,而且是一种底层接口,几乎可以操纵Oracle数据库的任何对象. 环境:windo

ADO.NET与Oracle(一):获取多行记录集

最近接触ADO.NET和Oracle,将我平常遇到的一些问题和大家共享. 我觉得要想入门ADO.NET操作Oracle,最基本的要求就是要会通过ADO.NET更新Oracle中的数据. 该文简单讲些利用Command对象更新数据库 所有内容基于VS2010和Oracle11g(32bit) 1.连接数据库 连接数据库依靠OracleConnection对象 OracleConnection con = new OracleConnection("data source=orcl;uid=syst

C# VS2010中,用微软自带的System.Data.OracleClient来连接Oracle数据库

由于微软在.Net框架4.0中已经决定撤销使用System.Data.OracleClient,造成在VS2010中无法连接Oracle数据库,但它还依旧存在于.Net架构中,我们可以通过自己引用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.OracleClient.dll 来获得对Oracle数据库的支持. 方法: 1.在VS2010中打开[解决方案管理器]--右击[引用]--[添加引用] 2.选择[浏览]找到“C:\Wi

ExcelVBA连接Oracle

VBA连接Oracle需要添加引用: 之后,连接字符串为:Provider = MSDAORA.1;Password=******;User ID=XXXXXXX;Data Source=DBID;Persist Security Info=True 然后使用ado的标准封装使用即可,1.使用ADO.CONNECTION,打开连接,2.使用ADO.RECODESET查询DB,使用connection.Excute执行更新删除等操作. 具体代码如下: Public Sub ConOra()Dim

ADO.NET连接字符串大全

各种数据库的连接字符串 各种数据库的连接字符串 ADO.NET连接字符串大全 ADO.NET连接字符串 名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingres,Mimer SQL,Lightbase,PostgreSQL,Paradox,DNS,Firebird,Excel ,Text,DBF / FoxPro,A