web-dev-qa-db-fra.com

Comment se connecter à Oracle DB à partir de .NET?

Lorsque j'ouvre la ligne de commande SQL, j'écris CONNECT username/password@[//]Host[:port][/service_name] et cela me connecte parfaitement à la base de données. Cependant, je ne parviens pas à me connecter à partir d'un projet .NET à l'aide d'une chaîne de connexion. J'ai essayé beaucoup de choses telles que <add name="ConnectionString" connectionString="Data Source=username/password@[//]Host[:port][/service_name];" /> et <add name="ConnectionString" connectionString="server=tcp:Host;Initial Catalog=service_name; user id=username; password=password; Connection Timeout=180;" providerName="System.Data.OracleClient" />, mais rien n'a fonctionné jusqu'à présent. Chaque fois que j'arrive à sconn.Open(); dans ce qui suit:

var CurrentConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sconn = new SqlConnection(CurrentConnectionString);
sconn.Open();

J'ai pratiquement toujours l'erreur suivante:

Une erreur liée au réseau ou spécifique à une instance s'est produite pendant que établir une connexion à SQL Server. Le serveur n'a pas été trouvé ou n'était pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur: SQL Interfaces réseau, erreur: 25 - La chaîne de connexion n'est pas valide)

Comment puis-je me connecter correctement à la base de données?

7
Mathieu Roy

Essayez de suivre la chaîne de connexion

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";

& utilisez ensuite cette chaîne de connexion comme suit

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

Je recommande fortement d'utiliser "le pilote géré officiel Oracle ODP.NET".

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

Ou celui du framework Entity: https://www.nuget.org/packages/Oracle.ManagedDataAccess.EntityFramework/

Après l’installation via Visual Studio, il ouvre un fichier Lisez-moi que je vous recommande également de lire. 

Oracle fournit d’énormes quantités de documentation. Voici par où commencer:http://www.Oracle.com/technetwork/topics/dotnet/whatsnew/index.html

3

Vous utilisez System.Data.SqlClient.SqlConnection qui est utilisé pour vous connecter à un (Microsoft) SQL Server, il ne peut pas être utilisé pour une connexion Oracle.

Vous devriez utiliser System.Data.OracleClient.OracleConnection ou Oracle.ManagedDataAccess.Client.OracleConnection

Jetez un coup d’œil à cette réponse pour voir aussi les autres possibilités: Comment se connecter à la base de données Oracle 11 à partir de. net

1

Vous pouvez toujours utiliser EF et créer un ADO.Net Entity Data Model

 enter image description here

Et utilisez l'assistant pour créer et tester la connexion 

 enter image description here

0