oracle字符集dll,VS2010+Oracle驱动程序:ORA-12154:TSN:无法解析指定的连接标识符

我找到的最佳解决方案是使用Oracle数据访问客户端库,并在连接字符串中包含整个TNS names条目。这使得项目可以很容易地发布到web服务器、ClickOnce等。

以下是在项目中设置Oracle驱动程序所需的步骤:

1) 从“Oracle Data Provider for.NET”包中获取dll

我继续安装了完整的200mb ODAC和Oracle开发人员工具Visual Studio,但您只需要从这个下载四个dll。(您可以直接从安装程序包中提取它们,而不必经历整个安装过程,或者一个较小的下载可能包含所有这些内容。)

2) 在项目中引用dll

搜索Oracle数据访问客户端的安装目录,并将以下四个DLL拖到项目的根目录中:

Oracle.DataAccess.dll

oci.dll

oraciicus11.dll

OraOps11w.dll

设置

复制到输出目录

属性除Oracle.DataAccess.dll之外的所有文件

总是复制

.

低于

项目

-->

添加引用。。。

,单击

浏览

选项卡并选择Oracle.DataAccess.dll文件。

3) 使用带有完整连接字符串的驱动程序(可选)

为了不必担心应用程序部署到的计算机上设置的TNS names文件,我将整个定义放在文件中,如

connectionstrings.com

. 它使连接字符串有点庞大,但消除了我以前遇到的许多TNS名称文件问题:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=servername)(PORT=ââ1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));User Id=username;Password=********;

这是我用来测试司机的全部课程:

using System;

using System.Data;

using Oracle.DataAccess.Client;

static class Program

{

[STAThread]

static void Main()

{

TestOracle();

}

private static void TestOracle()

{

string connString =

"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)" +

"(HOST=servername)(PORT=ââ1521)))" +

"(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));"+

"User Id=username;Password=********;";

using (OracleConnection conn = new OracleConnection(connString))

{

string sqlSelect = "SELECT * FROM TEST_TABLE";

using (OracleDataAdapter da = new OracleDataAdapter(sqlSelect, conn))

{

var table = new DataTable();

da.Fill(table);

if (table.Rows.Count > 1)

Console.WriteLine("Successfully read oracle.");

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值