Connessione al database Oracle tramite C #?

Devo connettermi ad un DB Oracle (esterno) tramite Visual Studio 2010. Ma non voglio installare Oracle sul mio computer. Nel mio progetto ho fatto riferimento: System.Data.OracleClient . Ma non soddisfa il bisogno. Ho un “IDE Oracle Developer ID” in cui eseguo query SQL contro Oracle db.

Ho questo codice finora:

private static string GetConnectionString() { String connString = "host= serverName;database=myDatabase;uid=userName;pwd=passWord"; return connString; } private static void ConnectingToOracle() { string connectionString = GetConnectionString(); using (OracleConnection connection = new OracleConnection()) { connection.ConnectionString = connectionString; connection.Open(); Console.WriteLine("State: {0}", connection.State); Console.WriteLine("ConnectionString: {0}", connection.ConnectionString); OracleCommand command = connection.CreateCommand(); string sql = "SELECT * FROM myTableName"; command.CommandText = sql; OracleDataReader reader = command.ExecuteReader(); while (reader.Read()) { string myField = (string)reader["MYFIELD"]; Console.WriteLine(myField); } } } 

Finora ho letto questi blog:

http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm

http://blogs.msdn.com/b/kaevans/archive/2009/07/18/connecting-to-oracle-from-visual-studio.aspx

Finora non ho scaricato nulla da Oracle. Quali passi dovrei prendere per fare in modo che ciò accada?

Innanzitutto è necessario scaricare e installare ODP da questo sito http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

Dopo l’installazione, aggiungere un riferimento all’assembly Oracle.DataAccess.dll .

Sei a posto dopo questo.

 using System; using Oracle.DataAccess.Client; class OraTest { OracleConnection con; void Connect() { con = new OracleConnection(); con.ConnectionString = "User Id=;Password=;Data Source="; con.Open(); Console.WriteLine("Connected to Oracle" + con.ServerVersion); } void Close() { con.Close(); con.Dispose(); } static void Main() { OraTest ot= new OraTest(); ot.Connect(); ot.Close(); } } 

È anche ansible utilizzare il pacchetto NuGet di Oracle.ManagedDataAccess (.NET> = 4.0, database> = 10g Release 2).

Il prossimo approccio funziona con Visual Studio 2013 Update 4 1- Da Esplora soluzioni, fare clic con il tasto destro su Riferimenti quindi selezionare Aggiungi riferimenti 2 Assemblies> Framework> System.Data.OracleClient> OK e successivamente è ansible aggiungere utilizzando System.Data. OracleClient nell’applicazione e gestire il database come si fa con il database SQL Server tranne la modifica del prefisso da Sql a Oracle come in SqlCommand diventa OracleCommand ad esempio per collegarsi a Oracle XE

 OracleConnection oraConnection = new OracleConnection(@"Data Source=XE; User ID=system; Password=*myPass*"); public void Open() { if (oraConnection.State != ConnectionState.Open) { oraConnection.Open(); } } public void Close() { if (oraConnection.State == ConnectionState.Open) { oraConnection.Close(); }} 

e per eseguire alcuni comandi come INSERT, UPDATE o DELETE usando stored procedure possiamo usare il seguente metodo

 public void ExecuteCMD(string storedProcedure, OracleParameter[] param) { OracleCommand oraCmd = new OracleCommand(); oraCmd,CommandType = CommandType.StoredProcedure; oraCmd.CommandText = storedProcedure; oraCmd.Connection = oraConnection; if(param!=null) { oraCmd.Parameters.AddRange(param); } try { oraCmd.ExecuteNoneQuery(); } catch (Exception) { MessageBox.Show("Sorry We've got Unknown Error","Connection Error",MessageBoxButtons.OK,MessageBoxIcon.Error); } } 

Fondamentalmente in questo caso, System.Data.OracleClient ha bisogno di accedere ad alcune delle dll di Oracle che non fanno parte di .Net. soluzioni:

  • Installa il client Oracle e aggiungi la posizione bin all’ambiente Path varaible di windows OR
  • Copia oraociicus10.dll (versione Basic-Lite) o aociei10.dll (versione Basic), oci.dll, orannzsbb10.dll e oraocci10.dll dalla cartella installabile del client oracle nella cartella bin dell’applicazione in modo che l’applicazione sia in grado di trovare la dll richiesta

3 passaggi:

  1. Fai clic destro su Progetto, seleziona “Gestisci pacchetti NuGet …”
  2. Seleziona la scheda “Sfoglia”, cerca “Oracle” e installa “Oracle.ManagedDataAccess” Pacchetto Oracle NuGet
  3. Utilizzare il seguente codice ( Ctrl + . Per aggiungere automaticamente la direttiva using), notare la diversa stringa DataSource in confronto con Java:

     // create connection OracleConnection con = new OracleConnection(); // create connection string using builder OracleConnectionStringBuilder ocsb = new OracleConnectionStringBuilder(); ocsb.Password = "autumn117"; ocsb.UserID = "john"; ocsb.DataSource = "database.url:port/databasename"; // connect con.ConnectionString = ocsb.ConnectionString; con.Open(); Console.WriteLine("Connection established (" + con.ServerVersion + ")");