C# 多種方式串連Oracle。

來源:互聯網
上載者:User

標籤:manage   res   注意   安裝oracle   width   word   建立   ros   參考   

廢話不多說直接正題:

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

 

C# 多種方式串連Oracle。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.