RG-*_*G-3 9 c# oracle connection-string database-connection oracle11g
所以我通过C#连接到外部服务器.我刚刚在我的机器上安装了Oracle 11g客户端:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html(255MB one).
在阅读了很多博客/问题后,我发现这篇文章很有用:
http://dbaspot.com/oracle-faq/444787-ora-12541-tns-no-listener.html
这是正确的吗?我什么都做不了.DBA必须编辑LISTENER.ORA文件?
我的tnsnames.ora看起来像这样:
TestingConnect=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = TestHostName.us.local)(PORT = 1523))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST)
)
)
Run Code Online (Sandbox Code Playgroud)
这让我犯了错误:
Oracle.DataAccess.Client.OracleConnection connection = new Oracle.DataAccess.Client.OracleConnection();
connection.ConnectionString = "Data Source=TestHostName.us.local;Persist Security Info=True;" + "User ID=tesName;Password=test";
connection.Open() //Throwing ERR!!!
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我感谢任何评论.谢谢!
您可以通过以下几种方式执行此操作:使用TNSNames文件,数据源应指定TNSHosts条目名称(tnsnames.ora中第一个"="之前的位),而不是主机名:
connection.ConnectionString = "Data Source=TestingConnect;Persist Security Info=True;" + "User ID=tesName;Password=test";
Run Code Online (Sandbox Code Playgroud)
或者您可以将整个TNS条目放在连接字符串中,如下所示:
connection.ConnectionString = "Data Source=(DESCRIPTION = " +
"(ADDRESS = (PROTOCOL = TCP)(HOST = TestHostName.us.local)(PORT = 1523))" +
"(CONNECT_DATA =" +
"(SERVER = DEDICATED)" +
"(SERVICE_NAME = TEST))" +
");Persist Security Info=True;User ID=tesName;Password=test";
Run Code Online (Sandbox Code Playgroud)
感谢您的输入.我改变了我的连接字符串,它工作正常.这是它的样子:
private static string GetConnectionString()
{
return "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=TestHostName.us.local)(PORT=1523) ) )" +
"(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CCDB)));User id=UserName; Password=Password; enlist=false; pooling=false;";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26806 次 |
| 最近记录: |