废话不多说直接正题:

首先我们先在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

最新文章

  1. 快速理解-Ajax
  2. FreeBSD从零开始---安装后配置(二)
  3. [转]MOSS通过此命令注册模板,web应用程序可以根据stp模块生成网站集
  4. Android 日常开发总结的技术经验 60 条
  5. 毫无保留开源我写的:IOS Android Ipad 多点触摸通用js 库
  6. text-align:justify_内容居中对齐
  7. python3数据类型
  8. MSVC CRT运行库启动代码分析
  9. 通过ip地址获取当前地理位置
  10. mysql中IN和EXITS效率
  11. NSString 筛选和最后一个空白、空行,多换行成一个新行
  12. Openjudge-NOI题库-旅行-数论
  13. Windows系统安装MySQL
  14. mysql 获取上个月,这个月的第一天或最后一天
  15. 【intern】最长公共子串、编辑距离、KMP 等
  16. curl模拟ip和来源进行网站采集的实现方法
  17. hdu 4941 map的使用
  18. 如何打开chrome中flash debug player
  19. mysql-5.7.17-winx64免安装版环境配置 问题小记
  20. 20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结

热门文章

  1. luogu P2181 对角线
  2. plink, vcftool计算等位基因频率(allele frequency,vcf)
  3. windows中的mysql修改管理员密码
  4. 第2课:什么是SQL注入
  5. java代码示例(5)
  6. Nginx的介绍以及编译安装详解
  7. linux下编译出现tmp空间不足解决办法
  8. tcp.validnode_checking踩过的坑
  9. Runnable Callable及Future
  10. POJ 2970 The lazy programmer