DotNetCampania
Il primo portale campano dedicato allo sviluppo software con tecnologie Microsoft

Problema query

rated by 0 users
Risposto This post has 1 verified answer | 2 Replies | 2 Followers

Top 50 Partecipanti
3 Post
Punteggio 60
VitaleMonaco posted on 30 dic 2009 18:11

Ragazzi scusate, sarà sicuramente la mia ignoranza con il contributo di Panettone, Veglione, Poker e Moto ma non riesco a fare una stupidissima query in access che mi dia la possibilità di prendermi tutti i servizi in base a:

1) Solo al nome servizio

2) Solo alla data

3) Entrambi

Ovviamente il tutto in un unica query.

WHERE     (id_nomeservizio = ?  OR  .........) AND (data_prossima_esecuzione = ?   OR  .................)

  • | Punteggio Post: 20

Risposto Verified Answer

Top 10 Partecipanti
Maschio
379 Post
Punteggio 5.540

Immagino tu stia usando i table adapter e hai il problema di aggiungere una query al tuo tableadapter... Il problema è che access non supporta i parametri con nome altrimenti ti sarebbe bastato scrivere:

WHERE     (id_nomeservizio = @id  OR @id IS NULL) AND (data_prossima_esecuzione = @data  OR  @data IS NULL)

quindi l'unica diventa:

WHERE     (id_nomeservizio = ?  OR ? IS NULL) AND (data_prossima_esecuzione = ?  OR  ? IS NULL)

a quel punto però il metodo creato avrà 4 parametri anzichè 2 e devi anche nelle proprietà dei due parametri fittizzi impostare che possono assumere valore null. A quel punto:

 

 

string

 

id = null;

 

 

DateTime? data = null;

 

 

this.testTableAdapter.FillBy(this.dataSet1.Test, id, id, data, data);

Non è pulitissimo ma almeno funziona...ti ho fatto una piccola demo che puoi scaricare

  • | Punteggio Post: 20

All Replies

Top 10 Partecipanti
Maschio
379 Post
Punteggio 5.540

Immagino tu stia usando i table adapter e hai il problema di aggiungere una query al tuo tableadapter... Il problema è che access non supporta i parametri con nome altrimenti ti sarebbe bastato scrivere:

WHERE     (id_nomeservizio = @id  OR @id IS NULL) AND (data_prossima_esecuzione = @data  OR  @data IS NULL)

quindi l'unica diventa:

WHERE     (id_nomeservizio = ?  OR ? IS NULL) AND (data_prossima_esecuzione = ?  OR  ? IS NULL)

a quel punto però il metodo creato avrà 4 parametri anzichè 2 e devi anche nelle proprietà dei due parametri fittizzi impostare che possono assumere valore null. A quel punto:

 

 

string

 

id = null;

 

 

DateTime? data = null;

 

 

this.testTableAdapter.FillBy(this.dataSet1.Test, id, id, data, data);

Non è pulitissimo ma almeno funziona...ti ho fatto una piccola demo che puoi scaricare

  • | Punteggio Post: 20
Top 50 Partecipanti
Maschio
7 Post
Punteggio 125

io invece non ho ben capito la richiesta...!!!

perchè non posti tutto il codice?

  • | Punteggio Post: 5
Pagina 1 di 1 (3 elementi) | RSS

Associazione Culturale DotNetCampania - C.F.: 95127870632

Powered by Community Server (Commercial Edition), by Telligent Systems