在进行以下连接数据库之前,请先在本地安装好Oracle Client,同时本次测试System.Data的版本为:2.0.0.0。
在安装Oracle Client上请注意,如果OS是3-BIT请安装32-BIT的Oracle Client,但OS是64-BIT,需要根据实际情况安装,如果你的APP是按32-BIT运行的,则需要安装32-BIT客户端,如果是按64位运行的,则安装64位客户端,而不是OS是64-BIT的,就要安装64-BIT的ORACLE客户端。
本次测试会在32-BIT 和64-BIT 上同时测试,32-BIT Oracle10G。
1.ODBC
1.1 首先需要在控制面板->管理工具->数据源(odbc)。
1.2 using System.Data.Odbc;
1.3 连接数据库
OdbcConnection conn = new OdbcConnection(DSN=XXX;UID=XXX;Pwd=XXX;);
conn.Open();
conn.Close();
32-BIT 和64-BIT 都OK。
2.OleDb(OraOLEDB.Oracle安装ODAC101040)
2.1 OleDB连接驱动有MSDAORA和OraOLEDB.Oracle,他们分别由微软和Oracle提供。使用OraOLEDB.Oracle驱动,需要安装Oracle Data Provider for OLE DB 。在32位机器上两者都可以,在64位机器上,使用“MSDAORA”会出现“未在本地计算机上注册“MSDAORA.1”提供程序”的问题,OraOLEDB.Oracle一切正常。
2.2 连接数据库
//using System.Data.OleDb;
OleDbConnection conn = new OleDbConnection("Provider=MSDAORA.1;User ID=XXX;password=XXX;Data Source=XXX;Persist Security Info=False"); Provider需要根据实际情况修改
conn.Open();
conn.Close();
3.OracleClient(ODAC121010Beta2_32bit支持oraclient)
3.1 //using System.Data.OracleClient;
3.2 连接数据库
OracleConnection conn = new OracleConnection(“data source=XXX;user=XXX;password=XXX;”);
conn.Open();
conn.Close();
32-BIT 和64-BIT 都OK。
4.OracleDataAccess
4.1 //Using Oracle.DataAccess.Client 需要安装 Oracle Data Providerfor .NET Framework 2
4.2 连接数据库
Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection("Data Source=yellow;user Id=Knemes;Password=oracle");
conn.Open();
conn.Close();
32-BIT 和64-BIT 都OK,但需要注意你的版本。
安装问题
-
安装oracle10g的时候,出现此问题,如图:
-
此问题的解决方案为:
右键安装程序(setup.exe) -> 属性 -> 兼容性 -> 以兼容模式运行这个程序 windows xp( service pack 3)然后使用管理员身份运行程序。如图:
问题解决。
-
请注意兼容性选项中一定要选择windowsXP(service pack 3)不要选择win7,否则错误无法解决。