zoukankan      html  css  js  c++  java
  • C# 多种方式连接Oracle。

    废话不多说直接正题:

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

    方式一:利用OleDb连接Oracle。

     1    #region  使用OleDb方式
     2             Console.WriteLine("OleDb方式");
     3             OleDbConnection oledbConnection = new OleDbConnection("Provider=OraOLEDB.Oracle; Data Source=MLDN; User Id=lisi; Password=lisi;");
     4             OleDbCommand oledbCommand = new OleDbCommand();
     5             oledbCommand.CommandText = "select * from USERS";
     6             oledbCommand.CommandType = CommandType.Text;
     7             oledbCommand.Connection = oledbConnection;
     8             oledbConnection.Open();
     9             var oledbReader = oledbCommand.ExecuteReader();
    10             while (oledbReader.Read())
    11             {
    12                 Console.WriteLine("姓名:"+oledbReader[1]);
    13             }
    14             oledbConnection.Close();
    15   #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[1]);
                }
                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[1]);
             } 
                odbcConnection.Close();
    
    #endregion

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

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

     1       #region
     2 
     3             Console.WriteLine("System.Data.OracleClient方式");
     4          System.Data.OracleClient.OracleConnection clientConnection = new System.Data.OracleClient.OracleConnection();
     5          clientConnection.ConnectionString = " Data Source=MLDN; User Id=lisi; Password=lisi;";
     6          System.Data.OracleClient.OracleCommand clientCommand = new System.Data.OracleClient.OracleCommand();
     7 
     8          clientCommand.CommandText = "select * from USERS";
     9          clientCommand.Connection = clientConnection;
    10          clientCommand.CommandType = CommandType.Text;
    11          clientConnection.Open();
    12          var clientReader = clientCommand.ExecuteReader();
    13          while (clientReader.Read())
    14          {
    15 
    16              Console.WriteLine("姓名:" + clientReader[1]);
    17          }
    18          clientConnection.Close();
    19             #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

  • 相关阅读:
    【Express系列】第3篇——接入mysql
    【Express系列】第2篇——主程序的改造
    【Express系列】第1篇——项目创建
    AngularJS内置指令
    node服务端搭建学习笔记
    生成ssh key
    webstorm的常用操作
    VSCode 常用插件
    php集成包
    composer安装特别慢的解决方案
  • 原文地址:https://www.cnblogs.com/wujiadexingfu/p/8505588.html
Copyright © 2011-2022 走看看