/// <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. Swift下使用Xib设计界面

    虽然Swift可以纯代码设计界面,不过不利用现有的可视化工具有时候有点效率低.下面是使用xib设计方法,部分代码来自网上. (1)新建View 2.新建View class 3.DemoView.sw ...

  2. C# 密封类使用sealed修饰

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace @sea ...

  3. Nginx 防盗链配置

    防盗链一般都是流媒体配置 location ~* \.(jpg|jpeg|png|bmg|swf|mp4|mp4|mmf|zip|rar|swf|flv)$ { // 对jpg|jpeg|png|bm ...

  4. 关于cc -o命令

    这个命令很灵活,格式是: cc -o 目标二进制可执行文件 文件1 文件2 文件3 ..... 其中目标文件后面的文件,可为源代码,也可为二进制文件,也可为库文件 比如: //a.c #include ...

  5. Spring源码解读

    beanfactory https://www.cnblogs.com/lspz/p/6244948.html requestmapping https://blog.csdn.net/u012557 ...

  6. Attempting to badge the application icon but haven't received permission from the user to badge the application错误解决办法

    今天刚刚学习UIApplication对象,当我希望利用这个对象在我们的应用图标上显示个数字的时候,xcode报了这个错误:  解决办法 : - (IBAction)applicationClicke ...

  7. ASP.NET MVC + EF 更新的几种方式(超赞)

    1.常用 db.Entry(实体).State = EntityState.Modified;db.SaveChanges(); 2.指定更新 db.Configuration.ValidateOnS ...

  8. 内核中container_of宏的详细分析【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637597.html 内核中container_of宏的详细分析 16年2月28日09:00:37 内核中 ...

  9. 【译】.NET Core 2.2 Preview 2 发布

    原文出自.Net Blog Announcing .NET Core 2.2 Preview 2 今天,我们宣布推出.NET Core 2.2 Preview 2.我们有很多重要改进要和你分享,而且我 ...

  10. saltStack运维工具的部署及master迁移实现的过程详解

    服务器端:192.168.3.87 客户端:192.168.3.86.192.168.3.108 1.salt服务器端安装 192.168.3.87 rpm -Uvh http://mirrors.y ...