Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Annullare il parametro di una query di TableAdapter
domenica 05 aprile 2009 - 14.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Antoniuccio
Profilo
| Newbie
8
messaggi | Data Invio:
dom 5 apr 2009 - 14:21
Salve a tutti, sono un neofita della programmazione Ado.net, sto costruendo un'applicazione windows in Visual Basic 2008 e ho il seguente problema circa una query di TableAdapter:
Ho costruito un form filtro per una tabella di un dataset visualizzata su una datagridview, ed ho cotruito una query parametrizzata sul TableAdapter della tabella in questione. L'utente sceglie, da combobox, i valori da passare ai parametri, ossia i filtri sui quali effettuare la ricerca delle righe sulla tabella. Finchè l'utente specifica tutti i parametri, il ds restituisce le righe richieste e tutto funziona, se invece l'utente omette un parametro, perchè magari non intende filtrare per quel campo, il ds riconosce "vuoto" il parametro e non restituisce alcuna riga.
es.
Dim marca as string = cbxMarca.text
Dim tipo as string= cbxTipo.text
Dim targa as string = txtTarga.text
TableAdapter.Filtro(ds.tabella, marca, tipo, targa)
se filtro per :
marca=alfa
tipo=147
tara=CD478XY
il ds mi tira fuori la riga indicata, e tutto funziona. Se invece volessi effettuare una ricerca solo su marca e tipo, senza indicare la targa, come faccio ad annullare il parametro della query? Ossia come faccio a dire al ds che deve tirarmi fuori tutte le "Alfa 147" qualsiasi targa esse abbiano?
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
dom 5 apr 2009 - 17:22
Ciao
Prova così:
TableAdapter.Filtro(ds.tabella, marca & '%', tipo & '%', targa & '%')
Ciao
alexmed
Antoniuccio
Profilo
| Newbie
8
messaggi | Data Invio:
dom 5 apr 2009 - 17:41
Mi dispiace ma... stesso risultato, qualsiasi valore possa indicare viene considerato come una stringa, comincio a pensare che bisogni trovare una soluzione a livello di select, magari con l'operatore "or", solo che non so benissimo come impostarlo...
Grazie, Antonio.
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
dom 5 apr 2009 - 17:56
Solo una domanda:
> ed ho cotruito una query parametrizzata sul TableAdapter della tabella in questione.
Hai aggiunto i parametri per tutte le colonne?
Quindi
marca = @marca
tipo = @tipo
targa = @targa
alexmed
Antoniuccio
Profilo
| Newbie
8
messaggi | Data Invio:
dom 5 apr 2009 - 18:02
Si tratta di un database di Acces, ho usato il generatore di query:
Select from...
where (auto.marca=?) and (auto.tipo=?) and (auto.targa=?)
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
dom 5 apr 2009 - 18:08
Allora prova a sostituire il % con l'* (asterisco)
alexmed
Antoniuccio
Profilo
| Newbie
8
messaggi | Data Invio:
dom 5 apr 2009 - 18:22
Ho provato anche con quello, ma penso che tutti i valori che io possa passare ai parametri, inclusi quelli concatenati con l'operatore &, vengano passati ad access sotto forma di stringa e quindi non li riconosce. Provavo ad usare l'operatore LIKE in questo modo:
... where (Auto.marca= ? or auto.marca like '%') ma niente, in questo caso non filtra, mi restituisce sempre tutte le righe, mentre se sostituisco like '%' con like '*', non mi restituisce nessuna riga... c'è un articolo interessante a questo link, in proposito:
http://office.microsoft.com/it-it/access/HP051885341040.aspx
è vicinissimo al problema, ma non ci siamo ancora...
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
dom 5 apr 2009 - 22:26
997_PRA.zip
Ciao
Ti allego un progettino base.
Fammi sapere
alexmed
Antoniuccio
Profilo
| Newbie
8
messaggi | Data Invio:
lun 6 apr 2009 - 16:21
Perfetto, grazie per l'aiuto, stavo giocherellando con l'operatore like ma non avevo pensato di sostituirlo all '='. Ho risolto! Ora però non mi riesce lo stesso circa un intervallo di date, non conosco la sintassi per passare la data ad un parametro...:
where (x.data between ? and ?) and ..., solo che forse dovrei aggiungere un "#", con access funziona così #data#, ma il generatore di query non accetta il rispettivo #?#...
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
lun 6 apr 2009 - 20:30
998_PRA_01.zip
Ti allego il progetto aggiornato
Ho anche inserito una query che ti carica tutte le marche (SELECT DISTINCT) nella prima combo e quando selezioni una di queste nella seconda combo vengono caricati tutti i modelli.
Infine con il btnSCADENZA selezioni in base alle date.
Ciao
alexmed
Antoniuccio
Profilo
| Newbie
8
messaggi | Data Invio:
lun 6 apr 2009 - 22:15
Allora, la funzione between ? and ? l'avevo impostata anch'io, avevo commesso un errore sul db, ossia avevo lasciato il campo 'data' al tipo string anzichè date... Grazie alexmed, mi sei stato davvero di grande aiuto!
Saluti, Antonio.
franksic
Profilo
| Newbie
9
messaggi | Data Invio:
mar 7 apr 2009 - 16:07
Ciao, sono Francesco, un newbie
Scusate se mi intrometto nel trhead, ma ho visto la soluzione di alexmed e mi è sembrata interessante per
risolvere un problema che ho postato in un altro trhead (SELECT SU TABELLA E QUERY).
Per Alexmed
Pensi che sia possibile utilizzare la combobox, come nel tuo esempio, però non sulla stessa tabella
ma su un'altra tabella in relazione con quella visualizzata?
Cerco di spiegarmi meglio.
In una form per l'emissione di fatture vorrei utilizzare la combobox per effettuare la ricerca di tutte le fatture di un
cliente tramite la ragione sociale.
Credi che sia fattibile ?
Grazie
Francesco
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
mar 7 apr 2009 - 19:05
Ciao Francesco
Penso che sia fattibile, ma dovresti postare la struttura delle due tabelle e farmi un esempio pratico indicandomi i dati da visualizzare sulla combo e quelli che vuoi estrarre alla selezione della combo stessa.
Ciao
alexmed
franksic
Profilo
| Newbie
9
messaggi | Data Invio:
mer 8 apr 2009 - 07:54
Ho postato tutto nel thread dal titolo SELECT SU TABELLA E QUERY.
ciao
Torna su
Stanze Forum
Elenco Threads
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 !