使用主机名,SID和端口号连接到数据库

时间:2013-11-29 18:02:57

标签: c# sql database oracle

我有一个HOSTNAME =主机名,SID = sid和PORT =为我的ORACLE数据库连接指定的端口。

我已使用SQL Developer成功连接到此数据库。我现在想做的是连接到我的C#应用​​程序中的同一个数据库。我怎样才能做到这一点?我该如何为SQLConnection实例指定连接字符串?

到目前为止,我得到了这个代码(变量:hostname,sid,port,username和password都是字符串,与SQL Developer中的相应字段完全相同):

String dataSourceFormat = String.Format(@"{0}\{1},{2}", hostname, sid, port);
DbConnectionStringBuilder conStr = new SqlConnectionStringBuilder()
{
    DataSource = dataSourceFormat,
    UserID = username,
    Password = password,
};
DBConnection con = new SqlConnection(conStr.ConnectionString);
con.Open();

打开连接时,我总是得到相同的错误“与服务器成功建立连接,但在登录过程中发生错误。(提供者:TCP提供者,错误:0 - 强制关闭现有连接由远程主机。)“。为什么连接在SQL Developer中有效,但在我的应用程序中却没有?

[编辑] 我也尝试过使用OracleConnection实例:

String dataSourceFormat = String.Format(@"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = {1})))(CONNECT_DATA =(SID  = {2})))", hostname, port, sid);
DbConnectionStringBuilder conStr = new OracleConnectionStringBuilder()
{
    DataSource = dataSourceFormat,
    UserID = username,
    Password = password,
};
DBConnection con = new OracleConnection(conStr.ConnectionString);
con.Open();

但它会导致另一个错误:“System.Data.OracleClient需要Oracle客户端软件版本8.1.7或更高版本”。

0 个答案:

没有答案