c#连接oracle的几种方式
c#连接oracle的几种方式
一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora)
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OracleClient;
1 string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;"; 2 OracleConnection conn = new OracleConnection(connString); 3 try 4 { 5 conn.Open(); 6 MessageBox.Show(conn.State.ToString()); 7 } 8 catch (Exception ex) 9 { 10 ShowErrorMessage(ex.Message.ToString()); 11 } 12 finally 13 { 14 conn.Close(); 15 }
二:通过System.Data.OracleClient(需要安装Oracle客户端不需配置tnsnames.ora)
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OracleClient;
1 string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))"; 2 OracleConnection conn = new OracleConnection(connString); 3 try 4 { 5 conn.Open(); 6 MessageBox.Show(conn.State.ToString()); 7 } 8 catch (Exception ex) 9 { 10 ShowErrorMessage(ex.Message.ToString()); 11 } 12 finally 13 { 14 conn.Close(); 15 }
三:通过System.Data.OleDb和Oracle公司的驱动
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))"; OleDbConnection conn = new OleDbConnection(connString); try { conn.Open(); MessageBox.Show(conn.State.ToString()); } catch (Exception ex) { ShowErrorMessage(ex.Message.ToString()); } finally { conn.Close(); }
四:通过System.Data.OleDb和微软公司的Oracle驱动
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
1 string connString = "Provider=MSDAORA.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))"; 2 OleDbConnection cnn = new OleDbConnection(connString); 3 try 4 { 5 conn.Open(); 6 MessageBox.Show(conn.State.ToString()); 7 } 8 catch (Exception ex) 9 { 10 ShowErrorMessage(ex.Message.ToString()); 11 } 12 finally 13 { 14 conn.Close(); 15 }
备注:
a.XP操作系统已经安装了微软公司的Oracle驱动C:\Program Files\Common Files\System\Ole DB\msdaora.dll
b.该驱动需要Oracle客户端的三个文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可
五:使用ODP连接
1. 下载安装ODP.NET(http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html)
2. 安装完全成后会产生一序列文件。
3. 找到这个安装目录,打开文件夹%ORACLE_HOME%\Network\Admin在这个下面建立一个tnsnames.ora的文件,其内容可以参考其下的Sample目录下面的配置
Oracle.RACE =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=127.0.0.1)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=RACE)
(SERVER=DEDICATED)
)
)
Oracle.RACE为连接字符串名称,可以随便取。等号后面的字符串可以在Enterprise Manager Console工具中连接数据库后的TNS描述符中拷过来
4. 引用Oracle.DataAccess命名空间
5. using Oracle.DataAccess.Client;
6. 示例代码:
1 string connString = "DATA SOURCE=Oracle.RACE;PERSIST SECURITY INFO=True;USER ID=IFSAPP;password=IFSAPP"; 2 OracleConnection conn = new OracleConnection(connString); 3 try 4 { 5 conn.Open(); 6 OracleCommand cmd = new OracleCommand(cmdText,conn); 7 OracleDataReader reader = cmd.ExecuteReader(); 8 this.DataGridView1.DataSource = reader; 9 this.DataGridView1.DataBind(); 10 } 11 catch (Exception ex) 12 { 13 ShowErrorMessage(ex.Message.ToString()); 14 } 15 finally 16 { 17 conn.Close(); 18 }
六:使用第三方驱动
第三方驱动有 Devart,下载驱动 http://www.devart.com/dotconnect/oracle/,但是是商业版,需要购买许可或破解
连接格式 User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
1. 引用Devart.Data.Oracle命名空间
2. using Devart.Data.Oracle;
1 OracleConnection conn = new OracleConnection(); 2 conn.ConnectionString = ""; 3 conn.Unicode = true; 4 conn.UserId = "IFSAPP"; 5 conn.Password = "IFSAPP"; 6 conn.Port = 1521; 7 conn.Server = "127.0.0.1"; 8 conn.Sid = "RACE"; 9 try 10 { 11 conn.Open(); 12 //execute queries, etc 13 } 14 catch (Exception ex) 15 { 16 ShowErrorMessage(ex.Message.ToString()); 17 } 18 finally 19 { 20 conn.Close(); 21 }
七、另外的东东
在vs2010中使用c# 连接oracle 11g:
一. 在VS2010中连接 Oracle数据库有两种方法:
第一种:微软提供的连接方法 : using System.Data.OracleClient;
第二种:Oracle自己提供的方法:using Oracle.DataAccess.Client;
连接字符串:
connectionString="Password=czh;User ID=czh;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=skydream)));"
1. 微软提供的连接方法 : using System.Data.OracleClient;
测试例程:
··1.在VS2010新建控制台应用程序(C#);
··2.右键、引用,在.NET中选择System.Data.OracleClient;
··3.在程序中 using System.Data.OracleClient;
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Data.OracleClient; 6 7 namespace ConsoleApplication2 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 string connectionString; 14 string queryString; 15 16 connectionString = "Data Source=202.200.136.125/orcl;User ID=openlab;PassWord=open123"; 17 18 queryString = "SELECT * FROM T_USER"; 19 20 OracleConnection myConnection = new OracleConnection(connectionString); 21 22 OracleCommand myORACCommand = myConnection.CreateCommand(); 23 24 myORACCommand.CommandText = queryString; 25 26 myConnection.Open(); 27 28 OracleDataReader myDataReader = myORACCommand.ExecuteReader(); 29 30 myDataReader.Read(); 31 32 Console.WriteLine("email: " + myDataReader["EMAIL"]); 33 34 myDataReader.Close(); 35 36 myConnection.Close(); 37 38 } 39 } 40 }
2.Oracle自己提供的方法:using Oracle.DataAccess.Client;
前提条件:安装oracle或者oracle client以及安装 Oracle Client 。
··1.在VS2010新建控制台应用程序(C#);
··2.右键、引用,在.NET/组件中选择Oracle.DataAccess.Client;如果找不到则选择 浏览,进入到oracleclient的安装目录寻找 Oracle.Data.Access.dll (典型目录为:E:\app\Administrator\product\11.2.0\client_1\ODP.NET\bin\2.x\Oracle.Data>Access.dll)
··3.程序中添加引用:using Oracle.DataAccess.Client;
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using Oracle.DataAccess.Client; 6 7 namespace testConnectionOracle 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 string connectionString; 14 string queryString; 15 16 connectionString = "Data Source=202.200.155.123/orcl;User ID=openlab;PassWord=open123"; 17 18 queryString = "SELECT * FROM T_USER"; 19 20 OracleConnection myConnection = new OracleConnection(connectionString); 21 22 OracleCommand myORACCommand = myConnection.CreateCommand(); 23 24 myORACCommand.CommandText = queryString; 25 26 myConnection.Open(); 27 28 OracleDataReader myDataReader = myORACCommand.ExecuteReader(); 29 30 myDataReader.Read(); 31 32 Console.WriteLine("email: " + myDataReader["EMAIL"]); 33 34 myDataReader.Close(); 35 36 myConnection.Close(); 37 38 } 39 } 40 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!