trattobasso (Normal User)
Pro
Messaggi: 89
Iscritto: 02/05/2007
|
ciao a tutti eccomi alla disperata presa con db access. sto riuscnedo bene o male e fin'ora con il seguente codice riesco a leggere il contenuto di una tabelle:
Codice sorgente - presumibilmente C# / VB.NET |
Dim selezione = New OleDbDataAdapter("SELECT * FROM Docenti", archivio)
selezione.Fill(DataSet1, "Docenti")
archivio.Close()
DataGridView1.DataSource = DataSet1.Tables("Docenti")
|
e fin qui ci sono arrivato senza problemi ma, se avessi delle relazioni tra tabelle e la mia select includesse quindi WHERE, il Fill di DataSet1 non sarà più la tabella Docenti ma il risultato della query giusto? Come dovrei cambiare di conseguenza secondo voi a questo punto
Codice sorgente - presumibilmente Plain Text |
selezione.Fill(DataSet1, "??????????")
DataGridView1.DataSource = DataSet1.??????
|
selezione.Fill(DataSet1, "??????????")
DataGridView1.DataSource = DataSet1.?????? |
|
trattobasso (Normal User)
Pro
Messaggi: 89
Iscritto: 02/05/2007
|
Scusate se riapro lo stesso come topic ma in ignoranza avevo postato il mio problema come domanda.
Riagganciandomi al post precedente sotto suggerimento di Renny ho modificato il tutto in:
Codice sorgente - presumibilmente C# / VB.NET |
Dim selezione = New OleDbDataAdapter("SELECT Docenti.Nome, Docenti.Cognome, Docenti.Luogo_di_nascita, Provincie.Provincia, Provincie.Comune, Provincie.Cognome FROM Docenti, Provincie WHERE Docenti.Cognome = Provincie.Cognome", archivio) 'Comando SQL
selezione.Fill(DataSet1, "risultato")
archivio.Close()
DataGridView1.DataSource = DataSet1.Tables("risultato")
|
Il tutto sembra funzionare, solo che in datagrid mi aggiunge oltre alle campi che mi aspettavo quindi Nome,Luogo_di_nascita,Provincia,Comune anche dei campi che si chiamo appunto Docenti.Cognome e Provincie.Cognome
Mi viene suggerito di cambiare da FROM - WHERE a FROM - JOIN in quanto normalmente nel WHERE non viene accettatta più di una tabella come servirebbe nel mio caso.
Ora mi metto e vi farò sapere se e cosa riuscirò a fare.
Ciao e grazie.
|
|
trattobasso (Normal User)
Pro
Messaggi: 89
Iscritto: 02/05/2007
|
L'equivalente della precedente query con il JOIN dovrebbe essere:
("SELECT Docenti.Nome, Docenti.Cognome, Docenti.Luogo_di_nascita, Provincie.Provincia, Provincie.Comune, Provincie.Cognome FROM Docenti INNER JOIN Provincie ON Docenti.Cognome = Provincie.Cognome", archivio
Infatti come risultato mi esegue un filtro in base al criterio desiderato ma, rimane il fatto che la datagrid rappresenta in più oltre al previsto il campi Docenti.Cognome e Provincie.Cognome
Scrivo qualcosa di sbagliato concettualmente o di sinstassi nella query?
Grazie
|
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
Ciao.. Ma.. a questo punto puoi toglierli dalla query direttamente..
prova così:
SELECT Docenti.Nome, Docenti.Cognome, Docenti.Luogo_di_nascita, Provincie.Provincia, FROM Docenti INNER JOIN Provincie ON Docenti.Cognome = Provincie.Cognome"
|
|
trattobasso (Normal User)
Pro
Messaggi: 89
Iscritto: 02/05/2007
|
Ciao Renny,
fatto ma mi restituisce un'eccezzione oledb del tipo:
L'istruzione SELECT include una parola riservata o un argomento scritto in modo errato o mancante oppure la punteggiatura non è corretta.
Provo a vedere cosa riesco a capire e torno.
Ciao e grazie.
|
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
Ciao.
Dunque, io le query o le faccio con Access oppure uso visual Studio.
Il procedimento è lo stesso, selezioni i campi che ti servono, imposti il "criterio", cioè il WHERE e il gioco è fatto. Ti consiglio di usare i parametri.
Fai "imposta carattere parametri" e metti "@". Poi nei criteri scrivi =@ID, per filtrare per ID.
EDIT:
SELECT Docenti.Nome, Docenti.Cognome, Docenti.Luogo_di_nascita, Provincie.Provincia FROM Docenti INNER JOIN Provincie ON Docenti.Cognome = Provincie.Cognome
Ho tolto la virgola prima di FROM
Ultima modifica effettuata da Renny il 18/01/2012 alle 18:08 |
|
trattobasso (Normal User)
Pro
Messaggi: 89
Iscritto: 02/05/2007
|
ciao renny,
ecco infatti è quello che avevo tolto pure io la "," che era di troppo e appunto ora funziona.vorrei ringraziarti per la pazienza e per le spiegazioni, ora devo rivedere un attimo il concetto dei componenti della query perchè a distanza di una settimana mi sono già scordato diverse cose come per esempio:che ci fa Provincie.Provincia prima di FROM Docenti quando sono dati che si trovano in una cartella diversa da Provincie? Bha...devo ricapitolare un attimo.Grazie ancora e alla prossima.
|
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
Prego
e buon lavoro.
Alla Prossima!
|
|