Test Verbi Automatico

lunedì 19 aprile 2010 - 15.19

maxway Profilo | Newbie

Ciao a tutti
devo realizzare una query che ha questa funzione
seleziona da un archivio verbi catalogati per (forma modo tempo) un certo numero di record che abbiano la (forma modo tempo) comprese in quelle selezionate in alcune check box

Ad esempio venti voci verbali casuali comprese tra l'indicativo presente e il congiuntivo passato (checkbox selezionate tra tutti i tipi di verbi) escludendo le altre

Grazie in anticipo per l'aiuto

Massimiliano

kataklisma Profilo | Senior Member

>Ciao a tutti

Ciao!

>devo realizzare una query che ha questa funzione
>seleziona da un archivio verbi catalogati per (forma modo tempo)
>un certo numero di record che abbiano la (forma modo tempo) comprese
>in quelle selezionate in alcune check box
>
>Ad esempio venti voci verbali casuali comprese tra l'indicativo
>presente e il congiuntivo passato (checkbox selezionate tra
>tutti i tipi di verbi) escludendo le altre

Se ho capito bene, hai 4 combobox che chiameremo ad esempio cmbModoInizio, cmbModoFine,cmbTempoInizio e cmbTempoFine, ora vorresti che inseriti i valori nelle 4 combobox, la query ti dia come risultato N forme verbali comprese tra cmbModoInizio, cmbModoFine uniti a cmbTempoInizio e cmbTempoFine.

Detta cosi ed immaginando la struttura del database che hai creato è alquanto impossibile cio che chiedi.

Dovresti strutturare il database piu o meno in questo modo :

Tabella Forme_Verbali , campi : Forma(pk),idModo(fk), idTempo(fk)
Tabella Modi , campi : idModo(pk), Descrizione_Modo
Tabella Tempi , campi : idTempo(pk), Descrizione_Tempo

Ora, ad ogni modo e tempo corrisponde un identificativo univoco da utilizzare nella query che andrai a costruire utilizzando la clausola between.

Esempio :

SELECT Forma FROM Forme_Verbali WHERE idModo BETWEEN (SELECT idModo FROM Modi WHERE Descrizione_Modo = cmbModoInizio.Text) AND (SELECT idModo FROM Modi WHERE Descrizione_Modo = cmbModoFine.Text) AND .... (Stessa cosa per i tempi verbali)


Attendo riscontri ;)

>Grazie in anticipo per l'aiuto
Di niente, ciao!


------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

maxway Profilo | Newbie

Non combobox ma checkbox; ad esempio io seleziono le checkbox corrispondenti al presente indicativo e al congiuntivo passato e mi vengono date in output un tot di voci verbali appartenenti ai due tempi (non comprese tra i due tempi) e questo con una, due, tre o più tempi

Grazie
Massimiliano

kataklisma Profilo | Senior Member

>Non combobox ma checkbox; ad esempio io seleziono le checkbox
>corrispondenti al presente indicativo e al congiuntivo passato
>e mi vengono date in output un tot di voci verbali appartenenti
>ai due tempi (non comprese tra i due tempi) e questo con una,
>due, tre o più tempi

Ops, piccola gaffe...:) scusami!

Comunque sia, il ragionamento piu semplice da fare è "costruirsi" la clausula WHERE.

Ovvero, nella routine che lancia la query dovresti in baase alle checkboxe segnate costruirti la clausula in uno dei 200000 modi possibili ecco il modo piu banale che mi viene in mente:

1)
SE stringWhere == "" ALLORA
SE checkBoxeIndicativo è segnata ALLORA
stringWhere += "Modo = 'Indicativo'"
...
...
SE stringWhere != "" ALLORA
SE checkBoxIndicativo è segnata ALLORA
stringWhere += "OR Modo = 'Indicativo'


e poi utilizzare la stringWhere nella query

string query = "Select ... From ... Where " + stringWhere + ";" ;

>Grazie

Di niente :)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
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