当前位置:首页 > 技能相关 > C#与C++ > 正文内容

C# 连接Oracle数据库方法

admin2年前 (2022-12-06)C#与C++3700 修订时间:2024-06-13 16:23:05

一:通过System.Data.OracleClient

需要安装Oracle客户端并配置tnsnames.ora,

1. 添加命名空间System.Data.OracleClient引用

using System.Data.OracleClient;

2.连接语句如下

//设置数据库连接语句 用户、密码、ora实例名
string connString = "User ID=sa;Password=123;Data Source=ORA;";
OracleConnection conn = new OracleConnection(connString);
try
{
   conn.Open();
   Console.WriteLine("连接成功!"+ conn.State.ToString());
   Console.ReadLine();
}
catch (Exception ex)
{
   Console.WriteLine("连接失败!"+ ex.Message.ToString());
   Console.ReadLine();
}
finally
{
   conn.Close();
   Console.ReadLine();
}

.net 4.0以上版本有些不支持该DLL,也不默认添加,需要添加相关引用才可添加命名空间

image.png

二、通过System.Data.OracleClient

需要安装Oracle客户端不需配置tnsnames.ora

1. 添加命名空间System.Data.OracleClient引用

using System.Data.OracleClient;

2.连接语句如下

string connString = "User ID=sa;Password=123;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名或IP)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))";
OracleConnection conn = new OracleConnection(connString);
try
{
   conn.Open();
   Console.WriteLine("连接成功!"+ conn.State.ToString());
   Console.ReadLine();
}
catch (Exception ex)
{
   Console.WriteLine("连接失败!"+ ex.Message.ToString());
   Console.ReadLine();
}
finally
{
   conn.Close();
   Console.ReadLine();
}

三:通过System.Data.OleDb和Oracle公司的驱动

1. 添加命名空间System.Data.OleDb引用

using System.Data.OleDb;

2.连接语句如下

            string connString = "Provider=OraOLEDB.Oracle.1;User ID=sa;Password=123;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名或IP)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))";
            OleDbConnection conn = new OleDbConnection(connString);
            try
            {
                conn.Open();
                Console.WriteLine("连接成功!" + conn.State.ToString());
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine("连接失败!" + ex.Message.ToString());
                Console.ReadLine();
            }
            finally
            {
                conn.Close();
                Console.ReadLine();
            }

如出现报错:未在本地计算机注册“OraOLEDB.Oracle.1”提供程序;

解决方法:

1、确保电脑安装ORACLE客户端程序,非简化版client端;

2、安装时选择Oracle Data Provider for .net 和Oracle Provider for OLE DB

3、人工命令行注册一下 regsvr32 D:appAdministratorproduct11.2.0dbhome_1BINOraOLEDB11.dll

四:通过System.Data.OleDb和微软公司的Oracle驱动

1. 添加命名空间System.Data.OleDb引用

using System.Data.OleDb;

2.连接语句如下

            string connString = "Provider=MSDAORA.1;User ID=sa;Password=123;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名或IP)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))";
            OleDbConnection conn = new OleDbConnection(connString);
            try
            {
                conn.Open();
                Console.WriteLine("连接成功!" + conn.State.ToString());
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine("连接失败!" + ex.Message.ToString());
                Console.ReadLine();
            }
            finally
            {
                conn.Close();
                Console.ReadLine();
            }

1、操作系统已经安装了微软公司的Oracle驱动  例如:C:Program FilesCommon FilesSystemOle DBmsdaora.dll
2、该驱动需要Oracle客户端的三个文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可

五:使用ODP.NET (推荐)

ODP.NET 是一种驱动程序,可提供对 Oracle 本地、云和自治数据库的快速数据访问。

ODAC安装包如下:

ODAC112040Xcopy_32bit.zip

ODAC112040Xcopy_64bit.zip

也可在这里下载需要的版本:https://www.oracle.com/database/technologies/dotnet-odacdev-downloads.html

软件安装方式:

1、解压缩到 C:OracleClient1;

2、创建目录 C:OracleClient;

3、以管理员身份运行 CMD.exe,切换运行目录为<1>cd C:/<2>CD OracleClient1;

4、执行语句 install.bat all C:OracleClient ODAC (这个命令相当于,使用C:OracleClient1中install.bat安装程序至 C:OracleClient 全部)

5、设置环境变量 <1> 添加path值:%ORACLE_HOME%与 %ORACLE_HOME%in <2> 新建系统变量,变量名为:ORACLE_HOME,值为:C:OracleClient

6、配置 %ORACLE_HOME% etworkadmin 下 tnsnames.ora 文件,格式如下:

实例名 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名称或IP)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 数据库实例名,一般为orcl)
    )
  )

1、如tnsnames.ora 不存在,可在%ORACLE_HOME% etworkadminsample中找到模板,也可自己新建;

2、ODAC具体安装事宜,参见:Oracle数据访问组件:ODAC的使用方法

7、引入命名空间Oracle.DataAccess

 using Oracle.DataAccess.Client;

8、连接语句如下

string connString = "DATA SOURCE=实例名;PERSIST SECURITY INFO=True;USER ID=sa;password=123";
OracleConnection conn = new OracleConnection(connString);
try
{
      conn.Open();
      Console.WriteLine("连接成功!" + conn.State.ToString());
      Console.ReadLine();
}
catch (Exception ex)
{
      Console.WriteLine("连接失败!" + ex.Message.ToString());
      Console.ReadLine();
}
finally
{
      conn.Close();
      Console.ReadLine();
}

除了以上的方法外,也可以使用第三方工具,例如: Devart,当然它是付费的,这里也就不再赘述了。

题外话:在Visual Studio中使用c# 连接oracle库,一般用两种连接方法,

第一种,微软提供的using System.Data.OracleClient,这个方法在.net 4.0以上版本后逐渐被摒弃掉;

第二种,Oracle自己提供的方法:using Oracle.DataAccess.Client。

前提条件:安装oracle或者Oracle Client,并且添加引用。

右键、引用,在.NET/组件中选择Oracle.DataAccess.Client;

如果找不到则选择 浏览,进入到oracleclient的安装目录寻找 Oracle.Data.Access.dll 

(典型目录为:E:appAdministratorproduct11.2.0client_1ODP.NETin2.xOracle.Data>Access.dll)

拓展:c# 连接Mysql数据库方法

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=256

分享给朋友:

相关文章

Web API的创建3年前 (2022-11-07)
C# 第一篇 踏上征程 3年前 (2022-11-14)
C# 第四篇 数组定义3年前 (2022-11-15)
C# 第五篇 字符串3年前 (2022-11-15)
C# 第七篇 窗口与控件2年前 (2022-12-05)
admin
admin
2年前 (2022-12-06)

目前已收录 ODAC 11.20.4、12.10.24、12.20.1、18.3、19.3、19.10 版本的32位和64位安装程序,存在NAS中,以备后续使用

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。