/// <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连接字符串的更多相关文章

  1. PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释

    PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...

  2. jdbc连接oracle数据库字符串

    jdbc连接oracle数据库有两种方式: 连接数据库SID 连接数据库service_name 当连接SID时,字符串如下: url::orcl1" password="xxxx ...

  3. C#连接Oracle数据库字符串(引入DLL)

    需求:从一台Oracle数据库获取数据,本以为是很简单的事情,直接将原来的SqlClient换成OracleClient调用,结果远没自己想的简单.要么安装Oracle客户端,要么安装PLSQL.网上 ...

  4. jdbc连接Oracle连接字符串方法

  5. Excel VBA 连接各种数据库(二) VBA连接Oracle数据库

    本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracle10g官方免账号下载地址 系统环境: Windows 7 64bit Excel 2 ...

  6. 基于ADO的远程Oracle连接

    最近在一个通过MFC做一个界面,通过这个界面可以对布置在另一台服务器上的数据库MySQL.SQl Server.Oracle进行增删创建表的操作.其中我通过ADO很快就完成了对MySQL和SQL Se ...

  7. 【Oracle连接字符串】【Oracle Net Manager 服务命名配置】【PL/SQL 登陆数据库】

    连接数据库的几个重要参数: 1. 登陆用户名:user: 2. 登录密码:password: 3. 存放数据库的服务器地址(server_ip)和端口(server_port): 4. 数据库名(db ...

  8. Oracle数据库字符串连接方法

    转至:http://database.51cto.com/art/201011/232267.htm 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLSe ...

  9. Oracle中字符串连接的实现方法

    1.和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样. 例如: SELECT '工号为'||FNumber||'的员工姓名为 ...

随机推荐

  1. 06-开闭原则(OCP)

    1. 背景 在软件的生命周期内,因为变化.升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试. 2. 定义   ...

  2. Zabbix LLD 设置过滤条件,不自动监控某些item

    1.需求描述        默认情况下Zabbix 自带模板 "Template OS Linux" 中网络接口LLD自动发现除还回接口外的所有接口,当这并不一定是我们想要的结果. ...

  3. C# 修改编译版本的方法

  4. sql 把多列内容合并

    这个语句不完整.应该是这样:stuff(select ',' + fieldname  from tablename for xml path('')),1,1,'') as ’别名‘这一整句的作用是 ...

  5. dubbo服务使用spring-data-mongodb进行时间查询的bug记录

    一.项目情况:spring-boot+mongodb+dubbo. 二.问题:调用dubbo服务并使用spring-data-mongodb的gte,lte时间段比较查询, @Reference(re ...

  6. maven私服内容补充

    1.添加阿里云中央仓库 注意Download Remote Indexes选项为True 1.登陆nexus私服(默认账号密码:admin/admin123) 2.点击右侧Repositories 3 ...

  7. java读取视频文件时长

    1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php 2.上代码 @RequestMapping(value = "am ...

  8. Struts防止表单重复提交

    1.什么是表单重复提交 > 在不刷新表单页面的前提下:         >> 多次点击提交按钮        >> 已经提交成功, 按 "回退" 之后 ...

  9. Java并发编程--并发容器之Collections

    在JDK1.2之前同步容器类包括Vector.Hashtable,这两个容器通过内置锁synchronized保证了同步.后面的ArrayList.LinkedList.HashMap.LinkedH ...

  10. 『PyTorch』第五弹_深入理解autograd_上:Variable属性方法

    在PyTorch中计算图的特点可总结如下: autograd根据用户对variable的操作构建其计算图.对变量的操作抽象为Function. 对于那些不是任何函数(Function)的输出,由用户创 ...