2010-11-06 7 views
7

Sto provando a connettermi a un database Oracle dal mio sito Web (asp.net-mvc). Le uniche informazioni che ho per la connessione al database è istruzioni ODBC, che mi dice di andare:odbc istruzioni per connettersi a oracle

  1. Dice di andare in una directory Oracle sulla macchina e entrare in questo in un file TSNNames.ora e immettere questo in:

    DBNAME=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[machine])(port=[port])) 
        (CONNECT_DATA=(SID=[DBNAME]))) 
    
  2. e quindi andare al pannello di controllo e aggiungere manualmente una connessione tramite la procedura guidata della GUI.

È possibile connettersi a questo database senza doverlo impostare? Speravo semplicemente di inserire una stringa di connessione e di essere sulla mia strada. Mi schiererò su macchine diverse e non voglio l'onere di dover aggiornare i file .ora o passare attraverso questa configurazione guidata della GUI.

Qualcuno ha un suggerimento per me?

+0

NOTA: SID = DBNAME, non il vostro nome utente. – Gaius

risposta

9

Non utilizzare ODBC. ODP.NET è un driver fornito da Oracle che si basa sullo stesso modello di SQL Server: basta scaricare il montaggio, fare riferimento a esso nel progetto e utilizzarlo:

using (var conn = new OracleConnection("Some connection string")) 
    using (var cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = "SELECT id FROM foo"; 
     using (var reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
      int id = reader.GetInt32(0); 
      } 
     } 
    }  
+0

Vedere [questo stackoverflow] (http://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle-client) per i dettagli sul set minimo di librerie richiesto per la distribuzione. –

2

In base a una domanda simile, Manually connecting to database in Asp.net MVC, non è implicata alcuna magia. Collegati semplicemente al db come faresti normalmente.

C'è un esempio VB @http://www.aspdev.org/articles/asp.net-mysql-connect/ È per MySql ma dovrebbe essere abbastanza semplice da passare alla stringa di connessione Oracle.

+0

Qualcuno può spiegare il downvote? Ho frainteso la domanda? – Farray

+0

Ho pensato che fosse una risposta abbastanza corretta – DaveDev

+0

In suvuppato per compensare un voto irragionevole. –

0

Esiste almeno un provider di ado.net per Oracle che non richiede un client Oracle sulla macchina. Vedi http://www.devart.com/dotconnect/oracle/. Devart chiama questa funzione 'modalità diretta'. Questo provider specifico di Oracle probabilmente funzionerà molto meglio di un provider odbc.

Ma c'è qualcosa che non capisco? Hai creato un'applicazione asp.net mvc in modo che devi solo installare su un server. Quindi qual'è il problema?