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)
oracle建立数据库连接5)登录的⽤户名/密码
附:Linux中登录数据库的命令为
sqlplus ⽤户名/⼝令@数据库名
3.获取连接字符串
查ORACLE安装地址
Linux命令:echo $ORACLE_HOME
$ORACLE_HOME\network\admin\
⽤vim打开a后,发现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=1521)
)
)
(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(0).ToString());
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
oc.Close();
}
}
static void Main(string[] args)
{
ReadFromOracleTest(); Console.ReadLine();
}
}
}
View Code
5.运⾏⽰例
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论