如何从.NET连接到Oracle数据库?

10
当我打开SQL命令行时,我输入CONNECT username/password@[//]host[:port][/service_name],它能够成功连接到数据库。然而,在一个.NET项目中,我无法使用连接字符串连接数据库。我已经尝试了很多方法,例如:<add name="ConnectionString" connectionString="Data Source=username/password@[//]host[:port][/service_name];" /><add name="ConnectionString" connectionString="server=tcp:host;Initial Catalog=service_name; user id=username; password=password; Connection Timeout=180;" providerName="System.Data.OracleClient" />,但目前都没有起作用。每当我执行以下代码中的sconn.Open();时:
var CurrentConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sconn = new SqlConnection(CurrentConnectionString);
sconn.Open();

我几乎总是遇到以下错误:

在连接到SQL Server时发生了一个与网络或特定实例相关的错误。 无法找到服务器或无法访问。请验证实例名称是否正确,并确认SQL Server已配置为允许远程连接。(提供程序:SQL Network Interfaces,错误:25-连接字符串无效)

如何正确连接到数据库?


1
http://www.connectionstrings.com/oracle/ - Ňɏssa Pøngjǣrdenlarp
服务器可以配置为不允许远程连接。这是所有主要的关系型数据库管理系统(RDBMS)服务器中的一个功能,包括MSSQL、PostgreSQL、MySQL,我想甚至包括Oracle。如果不允许远程连接,则即使您的连接字符串正确,也将无法访问。 - Ryan Mann
4个回答

10

尝试使用以下连接字符串

string con = "Data Source=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = 000.00.0.00)(PORT = 0000)))(CONNECT_DATA =(SERVICE_NAME = database)));User ID=User/Schema;Password=password;Unicode=True";

& 然后按下面的方式使用此连接字符串

using (OracleConnection objConn = new OracleConnection(con))
 {
   \\ code
 }

OracleException:在.NET Standard类库中使用时无法分配Oracle环境。 - Junior Mayhé

3

1
您使用的是System.Data.SqlClient.SqlConnection,用于连接到(Microsoft)SQL Server,不能用于Oracle连接。
您应该使用System.Data.OracleClient.OracleConnectionOracle.ManagedDataAccess.Client.OracleConnection 查看此答案以查看其他可能性: 如何从.net连接到Oracle 11数据库

0

您可以始终使用EF,并创建一个ADO.Net实体数据模型

enter image description here

使用向导创建并测试连接

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接