C# 连接Oracle数据库,免安装oracle客户端

摘要:
1、 首先,方案1的以下内容有待我进一步测试和确认。18.12.20确认需要在机器上安装Oracle客户端或Oracle数据库软件。18.12.201.下载Oracle。ManagedDataAccess。dll 2.添加到C#引用3.使用Oracle的命名空间引用。ManagedDataAccess。客户4.获取连接参数,然后打开安装Oracle的文件夹
一、方案1

首先下面的内容,有待我的进一步测试和证实。18.12.20

被证实了,还需要安装Oracle客户端,或者本机上安装oracle数据库软件。 18.12.20

1.下载Oracle.ManagedDataAccess.dll

2.添加到C#引用

3.命名空间引用

using Oracle.ManagedDataAccess.Client;

4. 连接参数的获取

然后打开Oracle安装的文件夹,以Oracle10为例D:Oracle10NETWORKADMIN nsnames.ora,打开这个文件,会看到

C# 连接Oracle数据库,免安装oracle客户端第1张

如果没有请按照图片内容输入即可,host=[主机名称],SERVICE_NAME=[随意取]

5.完成上述后,连接字符串:

strConnection = “Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=LocalHost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User ID=XXXX;Password=XXXX;”;

简单说明一下这个连接字符串,HOST=LostHost|127.0.0.1|主机名三者均可,选择一个就行;

SERVICE_NAME=[即你刚才在tnsnames中取得名字];

然后在输入你的Oracle账户名密码即可

6.测试代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string  strConnection =@ "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=XXX)));Persist Security Info=True;User ID=XXX;Password=XXX;";//以上为一行,显示为三行
        public Form1()
        {
            InitializeComponent();
            connectTest();
        }
        public void connectTest()
        {
            try
            {
                string str_sql = "SELECT * FROM XXX";
                OracleConnection conn = new OracleConnection(strConnection);
                OracleCommand cmd1 = new OracleCommand(str_sql, conn);
                conn.Open();
                MessageBox.Show("连接成功!");
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                MessageBox.Show("READSQL");
            }
        }
    }
}
 二、方案2

2.1 asp.net远程连接oracle数据库不用安装oracle客户端的方法

下面是asp.net连接远程Oracle数据库服务器步骤:

1.asp.net连接oracle服务器需要添加Sytem.Data.OracleClient命名空间。

2.连接时需要ConnectionString字符串,出现在web.config文件中,如下所示:

<connectionStrings>
  <add name="ConnectionString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=你的数据库服务器ip)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=你的数据库实例名)));User ID=scott;Password=tiger;Unicode=True" providerName="System.Data.OracleClient"/>
</connectionStrings>

上面的连接字符串添加了tns解析字符串,不需要再有OracleClient,否则需要安装,经过上面两步,在.Net Framework 2.0中远程连接Oracle 10g数据库服务器测试通过。

 

2.2 PL/SQL Developer不安装客户端连接远程oracle数据库

1、下载敏捷客户端InstantClient40M左右,选择适合自己的下载,我的是instantclient-basic-win32-11.2.0.1.0.zip ):

http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html

2、下载安装PLSQL16M左右):

http://www.onlinedown.net/soft/4902.htm

3、解压 instantclient-basic-win32-11.2.0.1.0.zip 到新建文件夹,如  D:/oracleclient/instantclient_11_2

用文本文档创建tnsnames.ora ,内容大致如下:

# TNSNAMES.ORA Network Configuration File: /opt/oracle/product/9204/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.          //以上为注释内容,因为我的tnsnames.ora是直接从服务器上download的
HSSL =                                             //数据库名称
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 218.108.242.30)(PORT = 1521))     //IP和端口
    )
    (CONNECT_DATA =
      (SERVICE_NAME = hssl)               //数据库名称
    )
  )

用文本文档创建sqlnet.ora ,内容如下:

NAMES.DIRECTORY_PATH= (TNSNAMES)

SQLNET.AUTHENTICATION_SERVICES= (NTS)

到我的电脑、属性、高级、环境变量中添加一个环境变量,变量名为TNS_ADMIN,值为tnsnames.ora文件所在路径,

例如:D:/oracleclient/instantclient_11_2

 

4、安装完毕PLSQL后,启动,cancel,依次点击Tools->Preferences->Connection:

Oracle Home=D:/oracleclient/instantclient_11_2

OCI library=D:/oracleclient/instantclient_11_2/oci.dll

重新启动PLSQL即可进入数据库,初次登陆可能存在中文乱码的问题,解决方法如下:

 

到我的电脑、属性、高级、环境变量中添加一个环境变量:

变量名:NLS_LANG

变量值:AMERICAN_AMERICA.ZHS16GBK

重新连接,即可正常显示中文。

如果想转换为UTF8字符集,可以赋予“NLS_LANG” “AMERICAN_AMERICA.UTF8,其他编码同上

参考文章

C#连接Oracle数据库(无须安装客户端,只须添加dll即可)

在C#中,远程连接Oracle数据库(不安装客户端,无需多余配置)

.net远程连接oracle数据库不用安装oracle客户端

 

 

 

免责声明:文章转载自《C# 连接Oracle数据库,免安装oracle客户端》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样Flask route里面的参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

eCharts 数据转换json

public ActionResult ShowChart() { return View(); } <div id="main" style="600px;height:400px;"></div> <script src="~/Scripts/echa...

Jsoup爬取数据设置代理IP

最近,使用Jsoup爬取数据发现有的网站当你用自己的电脑爬取数据,次数多的时候就会发现本地的电脑就会连不上,原因是本地IP被限制或者拦截了。 因此,自己也找了一些资料,发现爬取数据的时候可以设置代理Ip,这样就不会发生本地Ip被封掉的危险了。代码如下:   //设置代理Ip System. getProperties(). setProperty("...

X 利用ogg实现oracle到kafka的增量数据实时同步

利用ogg实现oracle到kafka的增量数据实时同步 前言 https://dongkelun.com/2018/05/23/oggOracle2Kafka/ ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到kafka中,其中同步消息格式为json。下面是我的源端和目标...

Sqlserver2008R2 数据库镜像配置步骤

Sqlserver2008镜像功能可以保障数据库的高可用性。数据库镜像维护着数据库的两个副本,这两个副本必须分别放置在不同的SQL Server数据库实例中。可以用两台服务器也可以用一台服务器的不同实例来承载,但实例必须具有不同的数据镜像端口。其中一台上的数据库用于客户端访问,充当“主体服务器”角色;而另一台则根据镜像会话的配置和状态,充当热备份服务器,即...

series和读取外部数据

1、为什么学习pandas 我们并不是不愿意学习新的知识,只是在学习之前我们更想知道学习他们能够帮助我们解决什么问题。——伟哥 numpy虽然能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据(字符串、时间序列等等) 2、什么是pandas pandas is an open source, BSD-...

influxdb安装及配置

influxdb安装及配置 安装 二进制安装 这里以centos6.5为例进行安装: wget https://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm yum localinstall influxdb-1.1.0.x86_64.rpm 其它环境可以参考influxdb官方...