繁体   English   中英

如何从 .NET 连接到 Oracle DB?

[英]How to connect to Oracle DB from .NET?

当我打开 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="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" /> <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 网络接口,错误:25 - 连接字符串无效)

如何正确连接到数据库?

尝试以下连接字符串

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
 }

我强烈建议使用“官方 Oracle ODP.NET,托管驱动程序”。

https://www.nuget.org/packages/Oracle.ManagedDataAccess/

或者实体框架的一个: https : //www.nuget.org/packages/Oracle.ManagedDataAccess.EntityFramework/

通过 Visual Studio 安装后,它会打开一个自述文件,我也建议您阅读。

Oracle 提供了大量的文档。 这是开始的地方: http : //www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html

您使用System.Data.SqlClient.SqlConnection用于连接到(Microsoft) SQL Server ,它不能用于 Oracle 连接。

您应该使用System.Data.OracleClient.OracleConnectionOracle.ManagedDataAccess.Client.OracleConnection

查看此答案以了解其他可能性: How to connect to Oracle 11 database from .

您始终可以使用 EF,并使用创建一个ADO.Net Entity Data Model

在此处输入图片说明

并使用向导创建和测试连接

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM