C# 连接 Oracle 的几种方式

一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora)
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OracleClient;
3. 
string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;";
OracleConnection conn = new OracleConnection(connString);
try
{
    conn.Open();
    MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
    ShowErrorMessage(ex.Message.ToString());
}
finally
{
    conn.Close();
}

二:通过System.Data.OracleClient(需要安装Oracle客户端不需配置tnsnames.ora)
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OracleClient;
3.
string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OracleConnection conn = new OracleConnection(connString);
try
{
    conn.Open();
    MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
    ShowErrorMessage(ex.Message.ToString());
}
finally
{
    conn.Close();
}

三:通过System.Data.OleDb和Oracle公司的驱动
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OleDbConnection conn = new OleDbConnection(connString);
try
{
    conn.Open();
    MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
    ShowErrorMessage(ex.Message.ToString());
}
finally
{
    conn.Close();
}

四:通过System.Data.OleDb和微软公司的Oracle驱动
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString = "Provider=MSDAORA.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OleDbConnection cnn = new OleDbConnection(connString);
try
{
    conn.Open();
    MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
    ShowErrorMessage(ex.Message.ToString());
}
finally
{
    conn.Close();
}

备注:
a.XP操作系统已经安装了微软公司的Oracle驱动C:\Program Files\Common Files\System\Ole DB\msdaora.dll
b.该驱动需要Oracle客户端的三个文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可

五:使用ODP连接
1. 下载安装ODP.NET(http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html)
2. 安装完全成后会产生一序列文件。
3. 找到这个安装目录,打开文件夹%ORACLE_HOME%\Network\Admin在这个下面建立一个tnsnames.ora的文件,其内容可以参考其下的Sample目录下面的配置
Oracle.RACE =
(DESCRIPTION=
   (ADDRESS_LIST=
     (ADDRESS=
       (PROTOCOL=TCP)
       (HOST=127.0.0.1)
       (PORT=1521)
     )
   )
   (CONNECT_DATA=
     (SID=RACE)
     (SERVER=DEDICATED)
   )
)
Oracle.RACE为连接字符串名称,可以随便取。等号后面的字符串可以在Enterprise Manager Console工具中连接数据库后的TNS描述符中拷过来
4. 引用Oracle.DataAccess命名空间
5. using Oracle.DataAccess.Client;
6. 示例代码:
string connString = "DATA SOURCE=Oracle.RACE;PERSIST SECURITY INFO=True;USER ID=IFSAPP;password=IFSAPP";
OracleConnection conn = new OracleConnection(connString);
try
{
    conn.Open();
    OracleCommand cmd = new OracleCommand(cmdText,conn);
    OracleDataReader reader = cmd.ExecuteReader();
    this.DataGridView1.DataSource = reader;
    this.DataGridView1.DataBind();
}
catch (Exception ex)
{
    ShowErrorMessage(ex.Message.ToString());
}
finally
{
    conn.Close();
}

六:使用第三方驱动
第三方驱动有 Devart,下载驱动 http://www.devart.com/dotconnect/oracle/,但是是商业版,需要购买许可或破解
连接格式 User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
1. 引用Devart.Data.Oracle命名空间
2. using Devart.Data.Oracle;
3.
OracleConnection conn = new OracleConnection();
conn.ConnectionString = "";
conn.Unicode = true;
conn.UserId = "IFSAPP";
conn.Password = "IFSAPP";
conn.Port = 1521;
conn.Server = "127.0.0.1";
conn.Sid = "RACE";
try
{
    conn.Open();
    //execute queries, etc
}
catch (Exception ex)
{
    ShowErrorMessage(ex.Message.ToString());
}
finally
{
    conn.Close();
}

zhuan :http://www.cnblogs.com/storys/archive/2013/03/06/2945914.html

posted on 2016-07-19 11:33 明净 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mingjing/p/5684110.html

C# 连接 Oracle 的几种方式相关推荐

  1. python连接oracle的几种方式

    'tp','tp','10.20.36.19:1521/ocntest' oracle服务器的部署信息: IP:10.20.36.19 端口:1521 服务名:ocntest 用户名:tp 密码:tp ...

  2. JDBC连接ORACLE的2种URL格式

    今天jdbc链接数据库报错,java.sql.SQLException: Listener refused the connection with the following error: ORA-1 ...

  3. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/m ...

  4. 动态连接库的两种方式

    动态连接库的两种方式? 答案:调用一个DLL中的函数有两种方法: 1.载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样.这需 ...

  5. php mysql 连接方法 对比_Mysql实例php连接MySQL的两种方式对比

    <Mysql实例php连接MySQL的两种方式对比>要点: 本文介绍了Mysql实例php连接MySQL的两种方式对比,希望对您有用.如果有疑问,可以联系我们. MYSQL数据库记录一下P ...

  6. ADB——连接手机的三种方式

    ADB--连接手机的三种方式 有USB连接 硬件状态正常. 包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好. Android 设备的开发者选项和 USB 调试模式已开启. 可 ...

  7. beeline连接hive的两种方式

    前提先要启动hiveserver2,不启动怎么连接呢. hive --service hiveserver2 & 方式1 先登录beeline,进入beeline的命令行环境,然后连接 [ro ...

  8. JDBC连接Mysql的五种方式

    测试环境说明 mysql数据库:jdbc:mysql://localhost:3306/test IDE:IDEA 2022 JDK:JDK8 mysql:mysql 5.7 JDBC:5.1.37 ...

  9. android连接usb外设通讯_iOS App连接外设的几种方式

    一般iOS开发者做APP开发大部分时候都是通过Http(s)请求跟后台服务器打交道,做一些信息展示和用户交互.很少涉及到去跟外部硬件设备连接的开发.随着近年来车联网和物联网的兴起,智能家居和智能硬件的 ...

最新文章

  1. 用蛾子触角当天线,用气味导航!美国博士发明奇特生物技术无人机
  2. .bin 文件用excel文件打开_用PYTHON读写excel文件
  3. Windows Azure 社区新闻综述(#70 版)
  4. 微信小程序开发demo-地图定位
  5. DOMJavaScript示例练习
  6. TA能让你家的那些“哑”终端都“活”过来
  7. chroot环境的快速构建
  8. [HTML+CSS]电商网站模板
  9. python爬取搜狗微信的推文
  10. 时间序列分析的计量经济学方法 - Python中的序列性ARIMA
  11. svn如何修改443端口
  12. 微信活码裂变系统 利器
  13. Gi常用命令大全整理
  14. netcat 下载地址
  15. 正则表达式(韩顺平讲解)
  16. java 电子围栏_怎么画电子围栏,并进行电子围栏进出判断?
  17. linux分区sda和sdb合并,给系统新添加硬盘sdb后,怎么分配给sda下某个分区
  18. 如何将pytorch模型部署到安卓
  19. pythonString
  20. Windows下Django项目创建

热门文章

  1. 深度学习领域专业词汇_深度学习时代的人文领域专业知识
  2. 商业银行为什么大量组织高净值小规模活动?
  3. VS2015编译boost 1.62.0
  4. centos php 开启libgdgd_CentOS6.6下yum安装PHP的gd库失败?-问答-阿里云开发者社区-阿里云...
  5. php where 不包含,php – 除非它们包含“where”或“like”子句,否则不允许删除
  6. currenthashmap扩容原理_高并发编程系列:深入探讨ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)...
  7. java基础之HashTable和HashMap的区别
  8. 【caffe-Windows】mnist实例编译之model的使用-matlab
  9. c++MMMMM:oo
  10. 使用Jest进行单元测试