Stringa di connessione

giovedì 28 giugno 2007 - 09.58

elsinore Profilo | Junior Member

Ciao,
io ho questo codice nella mia pagina aspx

<asp:SqlDataSource ID="oracleDataSource" runat="server" ConnectionString="User Id=imansytest;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=139.128.84.185)(PORT=1521)))(CONNECT_DATA=(SID=MMSPRD)(SERVER=DEDICATED)));Password=imansytest;Persist Security Info=true"
SelectCommand="SELECT [ID_CMP] FROM [CPZ]">
</asp:SqlDataSource>

qundo la eseguo mi dice
The value's length for key 'data source' exceeds it's limit of '128'.

mi sono accorto che in effetti mi sto connettendo ad un DB Oracle utilizzando questo

<asp:SqlDataSource......

ora, com'è il corrispettivo per connettersi ad un db oracle?

grazie!

Wamba Profilo | Expert

OracledataSource
Il problema è che la dll non è referenziata automaticamente come per SQLServer. Devi fare: Add reference dal menù del progetto ed agganciare System.Data.OracleClient adesso puoi accedere alle classi per Oracle sono le stesse che per gli altri solo hanno un prefisso diverso Oracle o OracleClient, non ricordo.

Piccola Nota:
Oracle distribuisce una dll alternativa per la connessione ADO.NET ai suoi database, qui trovi maggiori informazioni http://www.oracle.com/technology/tech/windows/odpnet/faq.html. Qui in azienda ho usato quella standard di microsoft e mi sono trovato benissimo.

-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

elsinore Profilo | Junior Member

Ciao,

dunque, io ho una solution che comprende 4 progetti, di cui 1 web, che è quello in cui sto cercando di inserire sta stringa di connessione!
Nel progetto web non vedo le "refernces" ma solo la cartella "bin"......ho prvato ad aggiungere la DLL che dici, ma non riesco..cioè la inseirsco ma poi non la vedo...e infatti se poi modifico il codice nella pagina mettendo OracleDataSource, mi da errore...... le DLL che vedi aggiunte nell'immagine sono state aggiunte da "add refernces - project"....


1284x780 162Kb

Wamba Profilo | Expert

Non ho capito bene quale sia il problema, provo a fornirti una descrizione completa di come fare:
I progetti web non differiscono dagli altri, solo hanno una visualizzazione "diversa".
click destro sul progetto web: add reference e ti si apre una finistra con diversi tab fra cui quello che hai visto anche tu "project". A noi interessa il primo a sinistra ".net" scorri l'elenco fino a trovare system.data.oracleclient.
a questo punto devi inserire "using" (c#) o "imports"(vb.net) adatto nelle direttive della pagina se non ricordo male System.Data.OracleClient a questo punto dovresti avere acceso alle classi ado.net x oracle.
Fammi sapere.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

elsinore Profilo | Junior Member

mmmm...non me ne va bene una!

l'ho aggiunto.....ma quando compilo mi dice
Error 9 'OracleDataReader' is an ambiguous reference between 'Oracle.DataAccess.Client.OracleDataReader' and 'System.Data.OracleClient.OracleDataReader' c:\inetpub\wwwroot\snamprogettilog\Default.aspx.cs 25 13 http://localhost/snamprogettilog/

e in corrispondenza di quella riga c'è

private OracleDataReader Record;

Wamba Profilo | Expert

>mmmm...non me ne va bene una!
>
>l'ho aggiunto.....ma quando compilo mi dice
>Error 9 'OracleDataReader' is an ambiguous reference between
>'Oracle.DataAccess.Client.OracleDataReader' and 'System.Data.OracleClient.OracleDataReader' c:\inetpub\wwwroot\snamprogettilog\Default.aspx.cs 25 13 http://localhost/snamprogettilog/
>
>e in corrispondenza di quella riga c'è
>
> private OracleDataReader Record;

Suppongo che tu abbia fatto una prova anche con la DLL oracle.
In pratica il ssitema si accorge che esistono due OracleDataReader' una presente sotto il namespace "System.Data.OracleClient" (sistema microsoft) e una sotto "Oracle.DataAccess.Client".
Le dichiarazioni iniziali di "using" C# o "imports" (Vb.net) significano più o meno: <<Caro compilatore, non ho alcuna voglia di specificarti il namespace per ogni dichiarazione! Fai una bella cosa quando trovi una dichairazione di classe che non ti torna cercala sotto questi namespace". Questa cosa funziona benissimo finchè i namespace che ometti non contengono classi con lo stesso nome.

Soluzione:
Devi devidere quale dei due sistemi utilizzare e togliere l'altro ALMENO dalle dichiarazioni di using (meglio se levi anche la reference).

-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

elsinore Profilo | Junior Member

mmmm ok...controllo meglio allora.....grazie!

Wamba Profilo | Expert

Fammi sapere come è andata
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5