C#连接oracle连接字符串
/// <summary>
/// Oracle 的数据库连接字符串.
/// </summary>
private const String connString =
@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.210)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=TEST;Password=TEST123"; 那个 192.168.1.210 是 Oracle 数据库服务器的 IP 地址
1521 是 默认的端口号
SERVICE_NAME=ORCL 意思是 那个 Oracle 数据库服务是 ORCL
后面就是 用户名 密码了。
在.NET中使用System.Data.OracleClient库连接Oracle数据库的步骤
1.下载并安装Instant Client
Instant Client可以在Oracle官方网站下载到
对于Windows,Instant Client有三种版本:
1)适用于 Microsoft Windows(32位)的 Instant Client
2)适用于 Microsoft Windows(64位)Itanium的 Instant Client
3)适用于 Microsoft Windows(x64)的 Instant Client
可以通过在我的电脑上单击右键菜单中的属性中查看到自己电脑的处理器信息
由于我的电脑是Win7 64位系统,因此我下载了第三个包
下载完毕后,解压缩并将里面的bin目录的地址添加到环境变量path中。
再在环境变量中添加以下属性:
(我把解压缩的路径放到了D盘,解压缩后的文件夹名为instantclient_12_1)
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN=D:\instantclient_12_1
LD_LIBRARY_PATH=D:\instantclient_12_1
2.使用Xshell4远程连接安装有Oracle的RedHat系统
需要输入以下项:
1)Name:自己起个名字
2)Protocol:选择SSH
3)Host:目标主机IP
4)Port Number:端口号(22)
5)登录的用户名/密码
附:Linux中登录数据库的命令为
sqlplus 用户名/口令@数据库名
3.获取连接字符串
查找ORACLE安装地址
Linux命令:echo $ORACLE_HOME
tnsnames.ora位于目录
$ORACLE_HOME\network\admin\
用vim打开tnsnames.ora后,发现Oracle数据库的配置如下:
xtcsjk =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 171.0.0.132)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb)
)
)
根据这个文件,就可以写出连接这个Oracle数据库的连接字符串了
Data Source=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=171.0.0.132)
(PORT=)
)
)
(CONNECT_DATA=
(SERVICE_NAME=TESTDB)
)
);
Persist Security Info=True;
User Id=用户名;
Password=密码
4.程序代码
注:运行下面这段代码,需要
1)手动添加对库System.Data.OracleClient的引用
2)在程序集→右键→属性→生成中,把目标平台由AnyCPU改为x64
否则会报异常BadImageFormatException(兼容性问题)
3)如果没有完成Instant Client的安装或环境变量的配置,运行时会报异常信息:
System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; //Method1函数调用的库,需要手动添加引用
using System.Data.OracleClient; namespace OracleTest
{
class Program
{
//从Oracle数据库中读取时间信息
static void ReadFromOracleTest()
{
string conn = string.Concat(
@"Data Source=",
@" (DESCRIPTION=",
@" (ADDRESS_LIST=",
@" (ADDRESS=",
@" (PROTOCOL=TCP)",
@" (HOST=171.0.0.132)",
@" (PORT=1521)",
@" )",
@" )",
@" (CONNECT_DATA=",
@" (SERVICE_NAME=TESTDB)",
@" )",
@" );",
@"Persist Security Info=True;",
@"User Id=用户名;",
@"Password=密码"
); //OracleConnection 被标注为已过时
OracleConnection oc = new OracleConnection(conn); try
{
oc.Open();
//OracleCommand 被标注为已过时
OracleCommand cmd = oc.CreateCommand();
cmd.CommandText = "select sysdate from dual";
OracleDataReader odr = cmd.ExecuteReader();
while (odr.Read())
{
Console.WriteLine(odr.GetOracleDateTime().ToString());
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
oc.Close();
}
} static void Main(string[] args)
{
ReadFromOracleTest();
Console.ReadLine();
}
}
}
5.运行示例
C#连接oracle连接字符串的更多相关文章
- PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...
- jdbc连接oracle数据库字符串
jdbc连接oracle数据库有两种方式: 连接数据库SID 连接数据库service_name 当连接SID时,字符串如下: url::orcl1" password="xxxx ...
- C#连接Oracle数据库字符串(引入DLL)
需求:从一台Oracle数据库获取数据,本以为是很简单的事情,直接将原来的SqlClient换成OracleClient调用,结果远没自己想的简单.要么安装Oracle客户端,要么安装PLSQL.网上 ...
- jdbc连接Oracle连接字符串方法
- Excel VBA 连接各种数据库(二) VBA连接Oracle数据库
本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracle10g官方免账号下载地址 系统环境: Windows 7 64bit Excel 2 ...
- 基于ADO的远程Oracle连接
最近在一个通过MFC做一个界面,通过这个界面可以对布置在另一台服务器上的数据库MySQL.SQl Server.Oracle进行增删创建表的操作.其中我通过ADO很快就完成了对MySQL和SQL Se ...
- 【Oracle连接字符串】【Oracle Net Manager 服务命名配置】【PL/SQL 登陆数据库】
连接数据库的几个重要参数: 1. 登陆用户名:user: 2. 登录密码:password: 3. 存放数据库的服务器地址(server_ip)和端口(server_port): 4. 数据库名(db ...
- Oracle数据库字符串连接方法
转至:http://database.51cto.com/art/201011/232267.htm 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLSe ...
- Oracle中字符串连接的实现方法
1.和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样. 例如: SELECT '工号为'||FNumber||'的员工姓名为 ...
随机推荐
- toolbar 相关
1.改变toolbar 返回键和扩展按钮颜色,只需要在style文件中添加这一行即可: 2.toolbar的title是否显示是这样控制的:
- Hibernate or 的用法
转自baidu estrictions.or(Restrictions.like(),Restrictions.or(Restrictions.like,........))里面的or可以无限加的.还 ...
- 六道JavaScript测验题
1.找出数字数组中最大的元素(使用Match.max函数) var a=[123,23432,345,3,34]; console.log(Math.max.apply(null,a)); 2.转化一 ...
- Nginx proxy开启cache缓存
proxy_temp_path /tmp/proxy_temp_dir; // 设置缓存位置 proxy_cache_path /tmp/proxy_cache_dir levels = : keys ...
- Linux之包管理工具总结[RPM/DPKG]-[YUM/APT]
0.关键词解释 RPM:Red Hat Package Manager(原名),RPM Package Manager(现名,递归缩写,类似于GNU的命名); 解释:RPM软件包管理器 YUM:Yel ...
- OOM之类、对象、实例、实体之辨析
一.场景再现 有一个重要的概念你需要弄明白,那就是“类(class)”和“对象(object)”的区别.我用禅语来解释一下吧: 鱼和三文鱼有什么区别? ...
- mac 报错Root chmod operation not permitted on file
系统:mac os 10.14.1 重启电脑 mac用户在升级系统之后,电脑启用了SIP(System Integrity Protection),增加了rootless机制,导致即使在root权限下 ...
- mysql系列九、mysql语句执行过程及运行原理(分组查询和关联查询原理)
一.背景介绍 了解一个sql语句的执行过程,了解一部分都做了什么,更有利于对sql进行优化,因为你知道它的每一个连接.where.分组.子查询是怎么运行的,都干了什么,才会知道怎么写是不合理的. 大致 ...
- Spring的Aspect切面类不能拦截Controller中的方法
根本原因在于<aop:aspectj-autoproxy />这句话是在spring的配置文件内,还是在springmvc的配置文件内.如果是在spring的配置文件内,则@Control ...
- hdu 4348 To the moon (主席树区间更新)
传送门 题意: 一个长度为n的数组,4种操作 : (1)C l r d:区间[l,r]中的数都加1,同时当前的时间戳加1 . (2)Q l r:查询当前时间戳区间[l,r]中所有数的和 . (3)H ...