更新到数据库时出错:Oracle

时间:2012-06-04 14:31:05

标签: c#

我在.Net Windows应用程序中工作。在App.Config中,我给出了像这样的连接字符串......

<add connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SID=PROD)(SERVER=DEDICATED)));User Id=TEST;Password=TEST;" providerName="System.Data.OracleClient" name="ConnectionString" />

我正在进行更新。断点到达更新方法后,我收到这样的消息..

  

ORA-12504:TNS:听众没有获得CONNECT_DATA中的SERVICE_NAME

我该怎么做......

我的tnsnames.ora是,

PROD =  (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = Prod)
)

2 个答案:

答案 0 :(得分:0)

我记得当我们想要为Oracle连接指定连接字符串时,应该提供服务名称,并从该服务名称加载其余信息。正如Romil在评论中所说,你必须在tnsnames.ora中创建一个服务名称。有一个用于创建服务名称的GUI工具。服务名称是概念上的连接说明符,将在其中提供连接所需的所有内容。 使用它来获取更多信息: Quick Start to Oracle Net Connections

答案 1 :(得分:0)

举个例子,这是我在ASP.NET 4.0应用程序中使用的连接字符串,用于通过ODP.NET提供者/驱动程序连接到Oracle数据库:

<add 
    name="oraOdpNet" 
    connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))); User Id=TEST; Password=TEST" 
    providerName="system.data.oracleclient" />

我想绝对依赖外部“tnsnames.ora”文件。