廢話不多說直接正題: 首先我們先在Oracle資料庫下建了一個用戶叫做lisi,密碼為lisi,在這個用戶下建立一張表叫做“USERS”,在這個表下新增三個數據。 方式一:利用OleDb連接Oracle。 方式二:利用Oracle.ManagedDataAccess.Client方式,在使用前,我們 ...
廢話不多說直接正題:
首先我們先在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