废话不多说直接正题:

首先我们先在Oracle数据库下建了一个用户叫做lisi,密码为lisi,在这个用户下建立一张表叫做“USERS”,在这个表下新增三个数据。

方式一:利用OleDb连接Oracle。

    #region  使用OleDb方式
Console.WriteLine("OleDb方式");
OleDbConnection oledbConnection = new OleDbConnection("Provider=OraOLEDB.Oracle; Data Source=MLDN; User Id=lisi; Password=lisi;");
OleDbCommand oledbCommand = new OleDbCommand();
oledbCommand.CommandText = "select * from USERS";
oledbCommand.CommandType = CommandType.Text;
oledbCommand.Connection = oledbConnection;
oledbConnection.Open();
var oledbReader = oledbCommand.ExecuteReader();
while (oledbReader.Read())
{
Console.WriteLine("姓名:"+oledbReader[]);
}
oledbConnection.Close();
#endregion

方式二:利用Oracle.ManagedDataAccess.Client方式,在使用前,我们需要先在Nuget中找到Oracle.ManagedDataAccess,然后安装,该方式好处之一是不需要在客户端上安装Oracle客户端,该版本是由Oracle公司开发的,而且微软已经放弃了自己的System.Data.OracleClient方式(下面会有介绍),推荐使用这种方式。

程式码如下:

  #region OracleConnection
//OracleConnection connection = new OracleConnection("Password=lisi;User ID=lisi;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.229.138)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=****)))");没有安装客户端的话,可以使用这种方式
Console.WriteLine("Oracle.ManagedDataAccess.Client方式");
OracleConnection oralceConnection = new OracleConnection("Data Source=MLDN; User Id=lisi; Password=lisi;");
oralceConnection.Open();
OracleCommand oracleCommand = new OracleCommand();
oracleCommand.CommandText = "select * from USERS";
oracleCommand.CommandType = CommandType.Text;
oracleCommand.Connection = oralceConnection;
var oracleReader = oracleCommand.ExecuteReader();
while (oracleReader.Read())
{
Console.WriteLine("姓名:" + oracleReader[]);
}
oralceConnection.Close();
#endregion

方式三:利用odbc方式

        #region odbc

            Console.WriteLine("odbc方式");
OdbcConnection odbcConnection = new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=MLDN;Uid=lisi;Pwd=lisi;");
odbcConnection.Open();
OdbcCommand odbcCommand = new OdbcCommand();
odbcCommand.CommandText = "select * from USERS";
odbcCommand.CommandType = CommandType.Text;
odbcCommand.Connection = odbcConnection;
var odbcReader= odbcCommand.ExecuteReader(); while (odbcReader.Read())
{
Console.WriteLine("姓名:" + odbcReader[]);
}
odbcConnection.Close(); #endregion

方式四:利用System.Data.OracleClient方式(该方式已过时,不推荐使用)。

虽然已经过时了但是还是可以使用的,代码如下:

       #region

             Console.WriteLine("System.Data.OracleClient方式");
System.Data.OracleClient.OracleConnection clientConnection = new System.Data.OracleClient.OracleConnection();
clientConnection.ConnectionString = " Data Source=MLDN; User Id=lisi; Password=lisi;";
System.Data.OracleClient.OracleCommand clientCommand = new System.Data.OracleClient.OracleCommand(); clientCommand.CommandText = "select * from USERS";
clientCommand.Connection = clientConnection;
clientCommand.CommandType = CommandType.Text;
clientConnection.Open();
var clientReader = clientCommand.ExecuteReader();
while (clientReader.Read())
{ Console.WriteLine("姓名:" + clientReader[]);
}
clientConnection.Close();
#endregion

方式五:使用可以连接Oracle的Entity Framework工具,在使用前需要先安装一个插件包,我的VS是2013的,插件包在如下地址:

http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/odacmsidownloadvs2013-2756823-zhs.html

当安装好了之后,我们可以使用EF去连接Oralce资料库了,连接方式如下:

然后我们在UI画面中拉取我们需要用到的表,注意使用EF的时候是要设置表主键的,所以我们需要设置USERS这张表的ID为主键,否则没有办法拉取到该表对象。

代码如下:

  #region Oracle EF
Console.WriteLine("Oracle EF方式");
Entities db = new Entities();
var users = db.USERS.ToList();
foreach (var item in users)
{
Console.WriteLine("姓名:" + item.NAME);
}
#endregion

执行结果画面:

综上是我目前所知道的连接Oracle的方式,至于还有其他方式,我暂时可能就不太清楚了。

参考文章:

http://blog.csdn.net/zz155666/article/details/53163115

https://www.cnblogs.com/gguozhenqian/p/4262813.html

C# 多种方式连接Oracle。的更多相关文章

  1. Java笔记4:JDBC纯驱动方式连接Oracle

    JDBC纯驱动方式连接Oracle 1 下载Oracle提供的驱动程序包 下载地址: http://www.oracle.com/technetwork/database/enterprise-edi ...

  2. java thin方式连接oracle数据库

    本文主要描述通过thin方式连接oracle数据库 1.创建web project ,将D:\oracle\product\10.2.0\db_1\jdbc\lib(oracle安装目录)下的ojdb ...

  3. vc++用ADO方式连接oracle问题

    今天装了个oracle客户端,准备写个访问远程oracle的程序.用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错: 从提示可以看出是没有找到OraOLEDBup ...

  4. win7下VS.NET中通过LinqToSQL连接oracle数据库

    .NetFramework3.5提供了LinqToSQL组件,为我们访问数据库提供了方便.我用的是VS+Oracle开发工具.也想体验一下快捷方便的感觉. 1.连接Oracle数据库 在连接Oracl ...

  5. C++ 连接Oracle

    下面是一个ADO方式连接Oracle的小程序部分代码...... 首先是Oracle的配置.在Oracle的安装路径下找到:Oracle\network\ADMIN\tnsnames.ora文件.配置 ...

  6. atitit.client连接oracle数据库的方式总结

    client连接oracle数据库的方式总结 文件夹 Java程序连接一般使用jar驱动连接.. ... 桌面GUI一般採取c语言驱动oci.dll 直接连接... 间接连接(须要配置tns及其env ...

  7. c# Oracle 远程连接方式 plsql 连接oracle 11g 64位

    1.本地连接字符串:   string connect = "Data Source=orcl;user=XXX;password=XXX;Persist Security Info=Tru ...

  8. 连接Oracle的几种方式

    如何引用Data.OracleClient.dll 由于从.net 4.0之后,微软将OracleClient.dll从框架里去除了,所以要使用,需要在VS2010里面去把项目的.net框架从.net ...

  9. Oracle BEQ方式连接配置

    Oracle BEQ方式连接配置 服务端和客户端在同一台机器上,可以使用BEQ连接,BEQ连接可以理解为进程间直接通信,不需要走网络监听,性能更高. 可以参考MOS:How To Connect Us ...

随机推荐

  1. luogu2680 [NOIp2015]运输计划 (tarjanLca+二分答案+树上差分)

    我们先不会就二分一下答案,设它是x,我们要判断它能不能满足 为了满足这个答案,我们就要让原本路径长度大于x的所有路径都经过某条边,而且这条边还要大于等于最长的路径-x 于是运用树上差分的思想,对于所有 ...

  2. oracle存储过程递归调用

    oracle存储过程递归调用,如果where子句使用的是传入的参数, 在以后的递归调用中参数就是第一次调用的参数值,解决办法是定义变量,使用自定义的变量问题可以解决.

  3. DownloadProvider 源码详细分析

    DownloadProvider 简介 DownloadProvider 是Android提供的DownloadManager的增强版,亮点是支持断点下载,提供了“开始下载”,“暂停下载”,“重新下载 ...

  4. change username on ubuntu.

    Below tutorial will show you how to change username in ubuntu 12.04 precise.First,we need login as r ...

  5. 【LOJ#6279】数列分块3

    题目大意:维护 N 个数组成的序列,支持两种操作:区间加.区间查询某个值的前驱(小于该值的最大值,若无前驱,输出-1). 题解1:可以像分块2一样,维护每个块内元素的一个有序序列,每次查询时二分查找即 ...

  6. mui dtpicker 时间的设置 以及MUI的弹窗

    1)引入mui.min.css,然后引入mui.picker.min.css            注意这个mui.picker.min.css  与 mui.picker.css  不一样 2)引入 ...

  7. 算法入门及其C++实现

    https://github.com/yuwei67/Play-with-Algorithms (nlogn)为最优排序算法 选择排序 整个数组中,先选出最小元素的位置,将该位置与当前的第一位交换:然 ...

  8. Redis之RDB与AOF

    AOF定义:以日志的形式记录每个操作,将Redis执行过的所有指令全部记录下来(读操作不记录),只许追加文件但不可以修改文件,Redis启动时会读取AOF配置文件重构数据 换句话说,就是Redis重启 ...

  9. Linux下Shell去除空行的方法

    1.用grep命令 grep -v “^$” 文件名 2.用sed命令 cat 文件名 | sed ‘/^$/d' 3.用awk命令 cat 文件名 | awk ‘{if($0!=”")pr ...

  10. 第一模块:python基础语法

    Python基础[day01]:python介绍发展史(一) Python基础[day01]:Hello World程序(二) Python基础[day01]:表达式if ...else语句(三) P ...