概述:
     C#通过使用ADO的方式在未安装Oracle数据库的前提下,客户端程序远程访问服务器,会出现:“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”问题,本文讲述如何通过简单方式快速实现免安装客户访问Oracle数据库,以解决当前问题。 

第一步:下载Instant Client 文件

1.去Oracle官网下载Instantclient。

我是在这里下载Instantclient的:http://www.oracle.com/technetwork/cn/database/windows/downloads/index-098472-zhs.html

2.然后将此文件放在C盘根目录下,例如C:\instantclient_11_2

第二步:配置环境变量

     找到设置环境变量配置的地方(我的电脑右键属性 --高级 --环境变量)

在系统变量中,首先找到Path变量名,然后点“编辑”,在其变量值后面加入中括号内的内容[;C:\instantclient_11_2],注意不要把中括号加进去了,这个值其实就是刚才我们解压Instant Client所在的目录,根据真实情况,修改即可。然后还是在系统变量中,增加以下三个变量:

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

TNS_ADMIN= C:\instantclient_11_2

LD_LIBRARY_PATH= C:\instantclient_11_2

第三步:增加tnsnames.ora文件

在C:\instantclient_11_2下添加一个配置文件tnsnames.ora,内容如下

# tnsnames.ora Network Configuration File: tnsnames.ora
# Generated by Oracle configuration tools.

toptst =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.59 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = toptst )
)
)

说明,以下需要根据实际情况修改:

HOST = 服务器地址IP 或服务器名称

PORT = 服务器端口号,默认为“1521“

SERVICE_NAME = 服务器数据库服务的名字

第四步

在进程选项卡中找到explorer.exe,把该进程结束掉,然后在应用程序选项卡中点击“新任务(N)…”,在弹出的新建任务窗口中输入explorer.exe,确定即可。其原理就是重启一下explorer进程,以达到刷新注册表的目的。

c#测试代码

 using System.Data.OracleClient;
private void button1_Click(object sender, EventArgs e)
{
string ConnectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.198.59 ) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME= toptst)));
User Id=ERPHIC; Password=***";
if (!string.IsNullOrEmpty(textBox1.Text.ToString()))
{
ConnectionString = textBox1.Text.ToString();
}
OracleConnection conn = new OracleConnection(ConnectionString);//创建一个新连接
try
{
conn.Open();
string sqltime= "select to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss') from dual";
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = sqltime;
DataTable dt = new DataTable();
OracleDataAdapter adt = new OracleDataAdapter(cmd);
adt.Fill(dt);
dataGridView1.DataSource = dt;
cmd.Dispose();
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
finally
{
conn.Close(); //关闭连接
}
}

此文章转自https://www.cnblogs.com/alanjl/p/3413599.html,在读了这位小哥文章后解决了我的问题,再次谢谢这位小哥的分享。

c#在不安装Oracle客户端的情况下与服务器上的Oracle数据库交互的更多相关文章

  1. 怎样使用PL/SQL在不安装oracle 客户端的情况下使用oracle数据库

    在网上查了好多这方面的例子,但是似乎说的都不准确,在咨询朋友后终于实现了本机不安装oracle 的情况下,在windows系统上实现连接服务器上的数据库,现在贴出来与大家共享. 首先,我们需要一个PL ...

  2. 在不安装oracle客户端的情况下,使用PLSQL

    一般在使用plsql时,会结合oracle客户端来使用,这样方便把数据库连接信息添加到plsql中.不过oracle客户端软件有点庞大,安装起来不太方便,所以在网上找到一种不依赖oracle客户端来使 ...

  3. 使用oracle11g_instant_client来解决在不安装oracle客户端的情况下连接服务端

    一.下载instantclient_11_2,可去oracle官网进行下载. 二.解压缩下载的instantclient_11_2,将instantclient_11_2目录拖放到C:\Program ...

  4. ORA-12538;ORA-12154;使用PL/SQL dve无法连接远程服务器上的oracle数据库,同时本机上也安装了一个oracle数据库

    问题描述:本人使用PL/SQL dve连接远程服务器上的oracle数据库,一直是没有问题的.我想提高下自己在数据库方面的能力就在自己的笔记本上安装了一个oracle数据库实例,安装并配置好之后,使用 ...

  5. [转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库

    时间:2013年8月21日 前提条件:假设你已经安装好了oracle和PL/SQL Developer,知道远程服务器的IP和数据库端口,知道远程服务器上的oracle数据库名和密码 如何用PL/SQ ...

  6. Oracle单实例情况下的library cache pin的问题模拟与问题分析

    Oracle单实例情况下的library cache pin的问题模拟与问题分析 參考自: WAITEVENT: "library cache pin" Reference Not ...

  7. 使用VISIO远程服务器上的ORACLE数据库,反向生成数据库实体关系图

    反向即根据已有的数据库,生成ER图,很多工具都可以实现这一过程,如visio,powerdesigner等,下面文章记录一下我使用VISIO生成远程服务器上的一个数据库ER图过程,供以后自己参考. 1 ...

  8. Lodop不要把客户端的打印机共享到服务器上 再在客户端打印

    客户端打印需要每个客户端都安装,Lodop插件方式和C-Lodop方式,都是安装一次后,无需再次安装,c-lodop默认也是开机自启动的.集中打印方式,可以打印到某台电脑(作为云主机)上,但是不能打印 ...

  9. 在cmd命令行下登录本地oracle数据库与服务器上的oracle

    一.本地登录 cmd->sqlplus 用户名/密码@数据库名 (as sysdba)->enter注:如果此用户名不是系统用户sys,scott,system就不需要加as sysdba ...

随机推荐

  1. Permutacja

    题意: 要求动态求问是否有一个 1~n 的排列,使得满足 $p_i \leq a_i$,给定 $a_i$ 初始值,接下来 m次单个位置修改,每次求问是否可以构造出来. 解法: 构造一序列使得 $cnt ...

  2. shader之顶点着色器

    Vertex Shader 是渲染管道中一个可编程的模块,用于处理独立的顶点.Vertex Shader接收Vertex Attribute Data,由定点数组对象通过渲染指令来生成. Vertex ...

  3. pythonDB api的学习

    有时候需要操作数据库,为了能使用统一的接口访问,我们采用Python DB API,地址为 https://www.python.org/dev/peps/pep-0249/ 全文参考---“疯狂的蚂 ...

  4. web前端之Html和Css应用中的细节问题

    1.居中的n种方法:①.margin: 0 20%; ——设置margin上下外边距的值设置为0,左右外边距设置成相同的百分比,既可将盒子居中. ②.margin: 0 auto;width: 100 ...

  5. OSP 与 Session

    大家都知道,OSP是不支持session的,换句话说,登录有效期是永久的.一般网站,如果你不操作一段时间以后,必须重新登录.osp不是这样的,你一旦登录后,即便服务器重启了,你依然能访问服务器并不需要 ...

  6. 微软 Remote App

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wangchunhai.blog.51cto.com/225186/201073 ...

  7. 剑指Offer的学习笔记(C#篇)-- 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 一 . 理解题目 这个题目可以让我们回归到小学,想想加法的竖式是怎么写的,哈哈,如果当时你不是那个竖式写错了, ...

  8. Continuous Integration

    https://dzone.com/articles/continuous-delivery-toolchain

  9. postman的安装和使用方法详解

    文章来源:http://www.cnplugins.com/tool/specify-postman-methods.html 非官网安装 这是一种直接通过打包已经安装的扩展程序的方式,来进行我认为的 ...

  10. 4.高级数据过滤 ---SQL

    一.AND操作符 要通过不止一个列进行过滤,可以使用A ND操作符给WHERE子句附加条件. SELECT prod_id, prod_price, prod_name FROM Products ; ...