C# 连接Oracle数据库,免安装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:\Oracle10\NETWORK\ADMIN\tnsnames.ora,打开这个文件,会看到
如果没有请按照图片内容输入即可,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
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:等线;
mso-ascii-font-family:等线;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:等线;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:等线;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
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数据库服务器测试通过。
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:等线;
mso-ascii-font-family:等线;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:等线;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:等线;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
2.2 PL/SQL Developer不安装客户端连接远程oracle数据库
1、下载敏捷客户端InstantClient(40M左右,选择适合自己的下载,我的是instantclient-basic-win32-11.2.0.1.0.zip ):
http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html
2、下载安装PLSQL(16M左右):
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客户端的更多相关文章
- .net远程连接oracle数据库不用安装oracle客户端
asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...
- .net远程连接oracle数据库不用安装oracle客户端的方法
.net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...
- 在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动
由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等 ...
- 《oracle每日一练》免安装Oracle客户端使用PL/SQL
免安装Oracle客户端使用PL/SQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的 ...
- Linux下Oracle数据库的安装
记录详细过程以备使用 一.准备安装 为了确保Oracle数据库11g能够成功安装,您需要做好准备工作,例如检查网络配置.更改Linux内核参数.创建用户Oracle.创建安装目录.设置用户Oracle ...
- 【转】亲测plsql Developer配置免安装oralce客户端步骤
原文地址:http://blog.csdn.net/bushy0401/article/details/11869461 再次用到Oracle了,机器上面也没有oracle客户端,还得去网上下载,直接 ...
- MySQL安装详细教程(数据库免安装版)
MySQL安装详细教程(数据库免安装版)mysql-5.7.33-winx64.zip 一.软件下载 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产 ...
- [转帖]如何获得一个RAC Oracle数据库(从Github - oracle/docker-images) - 本地版 ---暂时未做实验.
如何获得一个RAC Oracle数据库(从Github - oracle/docker-images) - 本地版 2019-11-09 16:35:30 dingdingfish 阅读数 32更多 ...
- 免安装Oracle客户端使用PLSQL Developer 7/8 连接Oracle10/11g
众所周知,Oralce的客户端几百兆太大,网上也有许多DIR的处理.这里的处理使用官方提供ORALCE工具包Instant Client Package! 下载地址:http://www.oracle ...
随机推荐
- PHP+mysql系统报错:PHP message: PHP Warning: Unknown: Failed to write session data (files)
PHP+mysql系统报错:PHP message: PHP Warning: Unknown: Failed to write session data (files) 故障现象,后台页面点击没有 ...
- 巧用PHP双$功能兼容线上线下配置文件
2014年2月8日 19:27:05 情景: 开发过程中线上和线下的配置文件中的值是不一样的 例如:线上生产环境的样式域名为ie.style.abc.com,而开发环境为ie.style.abc.ne ...
- 一次“ora-12170 tns 连接超时”的经历
win7 64位系统 oracle 10g 64位 plsql之前连接是好使的,突然连接不上,提示错误“ora-12170 tns 连接超时” 1.ping IP 没有问题 2. ...
- java adapter(适配器)惯用方法
如果现在有一个Iterable类,你想要添加一种或多种在foreach语句中使用这个类的方法,例如方向迭代,应该怎么做呢? 如果之间继承这个类,并且覆盖iterator()方法,你只能替换现有的方法, ...
- 解决Python3 pip list 红色DEPRECATION
解决Python3 pip list 红色DEPRECATION 打开文件扩展名和隐藏的项目 找到ProgramData,在该目录下创建pip文件夹,在pip里面创建pip.ini 在pip.ini ...
- visual studio code插件精选
HTML Snippets 超级实用且初级的 H5代码片段以及提示 HTML CSS Support 让 html 标签上写class 智能提示当前项目所支持的样式 JavaScript Atom G ...
- IDEA / WebStorm / PhpStorm 添加jQuery自动提示,自动补全,提醒文档
应该是JetBrains系列IDE通用的方法,网上其他一些方法有的过时了,有的不全 默认情况下没有JQuery补全,按照以下方法添加 1. 打开Settings,Languages & Fra ...
- Spring Cloud微服务视频教程-百度云
Spring Cloud微服务视频教程-百度云 链接:https://pan.baidu.com/s/1mp8SkxNw7EfoTDtDKQMpIA 提取码: 关注公众号[GitHubCN]回复521 ...
- 【LOJ】#2181. 「SDOI2015」排序
题解 还以为是啥毒瘤题 然后是个搜索题 复杂度算起来挺大 然后跑起来就连0.1ms不到= = 就是从大到小进行每种操作,搜出来一种操作就乘上一个操作数的阶乘就行 如果现在进行的操作操作\(2^i\)那 ...
- “漂亮的”排序算法 Stooge Sort 如何完成排序
Stooge Sort 是一种低效的递归排序算法,甚至慢于冒泡排序.在<算法导论>第二版第7章(快速排序)的思考题中被提到,是由Howard.Fine等教授提出的所谓“漂亮的”排序算法. ...