[C#] Query su DB Oracle

giovedì 13 marzo 2008 - 11.19

liveforever81 Profilo | Junior Member

Salve a tutti...ho un problema:

devo effettuare delle query di SELECT e poi di UPDATE su un DB proprietario.
Di tale DB non conosco, ovviamente, il contenuto...le uniche informazioni in mio possesso sono:
-è ORACLE;
-conosco i nomi delle tabelle e, per ciascuna di esse, tutti i campi con le info associate (tipo, lunghezza, null e descrizione)...

Mi aiutate ad effettuare una query? Giuro...ci sto capendo poco...
Facciamo un esempio pratico:

Ho la tabella RIVERSAMENTI, avente questi campi:
ID (numerico, è la chiave)
CAP (numerico)
FG_ATTIVO (char)
SERVIZIO (varchar2)
ANNO (numerico)
CANALE (varchar2)
NOME (varchar2)

Suppondiamo di voler effettuare una query di select di questo tipo:
SELECT CAP, ANNO, CANALE
FROM RIVERSAMENTI
WHERE FG_ATTIVO='S'"

Questa 'SELECT' dovrebbe quindi estrarmi i valori di quei campi...bene...ma dove li memorizzo?
Che struttura creare in modo da 'salvare' quei valori e poi utilizzarli in altre operazioni?

Grazie mille a tutti

Anonimo Profilo | Senior Member

prima di tutto diamo un titolo all'argomento: ADO.NET la sequenza è questa:
- Apri una connnessione
- Con un oggetto dataAdapter estrai un dataSet con cui lavorare i dati

Siccome l'argomento non è velocissimo da spiegare ti invio un piccolo esempio, se hai qualche domanda nello specifico puoi chiedere:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Team Icon - Software Engineering
------------------------------
Unicredit Consultant
Senior Developer

liveforever81 Profilo | Junior Member

Ciao!

Anzitutto grazie per la risposta! :D

Il mio dubbio, dopo aver creato la connessione ed aver effettuato una select congruente (mi tira, cioè, effettivamente i valori che volevo), come manipolare i valori di tale select?

Io inserisco la select all'interno di una variabile DataSet ds, in questo modo:


public DataSet Recupero_INFO()
{
StringBuilder sql = new StringBuilder();
DataSet ds = new DataSet();
OleDbParameter param;

ArrayList listaParametri = new ArrayList();

try
{
conn = objAdo.getConnection(); // dove ho impostato IDbConnection conn;

//Costruisco la query parametrica
sql.Append(" SELECT NOME, COGNOME");
sql.Append(" FROM ANAGRAFICA");

ds = objAdo.getDataSet("Recupero_INFO", cmd);

DataTable dt = ds.Tables[0];

Context.Util.SetComplete();

return ds;
}

catch (Exception ex)
{
// fa qualcosa...
}


Ora...ecco il mio problema:
Vorrei scansionare il DB e, per ogni riga presente nel ds, scrivere su un file tali informazioni (nell'esempio sono Nome e Cognome)...
Qual è la sintassi da usare?
Come 'leggere' i valori che risultano dalla select ed utilizzarli per scrivere (ad es.) su un file (non mi interessa la sintassi per la scrittura su file, la conosco...l'ho imparata proprio grazie a voi! :p)

Grazie infinitamente!

Anonimo Profilo | Senior Member

la più semplice è

using (StreamWriter sw = new StreamWriter("TestFile.txt")) foreach (DataRow dr in ds.Tables[0].Rows) sw.Write(dr["COGNOME"].ToString() + " " + dr["NOME"].ToString() );

Team Icon - Software Engineering
------------------------------
Unicredit Consultant
Senior Developer
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5