Allora, cerco di essere breve e chiaro:
Prima di tutto ti conviene utilizzare una storedProcedure e l'esempio che ti riporto fà riferimento ad una tabella (inventata al momento) su cui ci sono diversi campi.
Supponiamo di avere la tabella Anagrafica che contiene i campi: Nome,Cognome,DataDiNascita,CodiceFiscale,Indirizzo .
Ora creo una storedProcedure che mi permetta di ricercare all'interno di questa tabella secondo uno o più parametri "passati":
Nota nella storedProcedure tutti i parametri sono impostati @Param = NULL in fase di dichiarazione, in questo modo possiamo successivamente omettere il passaggio del parametro, e se sono null quando viene eseguita la query provvedere a sostituire ognuno di essi con il corrispettivo valore di colonna della tabella ( ... Table.Param = ISNULL(@Param, Table.Param) in questo modo vengono selezionati tutti i dati in quando l'uguaglianza e logica trattandosi di una comparazione del tipo Colonna = StessaColonna.codice:CREATE PROCEDURE anagraficaCerca @Nome varchar(20) = null, @Cognome varchar(20) = null, @DataDiNascita datetime = null, @CodiceFiscale char(16) = null, @Indirizzo varchar(20) = null AS SELECT a.Nome,a.Cognome,a.DataDiNascita,a.CodiceFiscale,a.Indirizzo FROM dbo.Anagrafica a WHERE a.Nome = ISNULL(@Nome,a.Nome) AND a.Cognome = ISNULL(@Cognome,a.Cognome) AND a.DataDiNascita = ISNULL(@DataDiNascita,a.DataDiNascita) AND a.CodiceFiscale = ISNULL(@CodiceFiscale,a.CodiceFiscale) AND a.Indirizzo = ISNULL(@Indirizzo,a.Indirizzo)
Per quanto riguarda la scrittura del codice, niente di speciale. Io "mastico c#" e te lo scrivo cosi come ricordo:
supponiamo di avete i seguenti campi:
Nome: TextBox
Cognome: TextBox
DataDiNascita: DateTimePicker
CodiceFiscale: TextBox
Indirizzo: TextBox
Ora la porzione di codice in cui viene inizializzato un oggetto di tipo System.Data.SqlClient.SqlCommand:
stessa cosa vale per tutti gli altri campi, spero di esserti stato d'aiuto, se hai dubbi avvisami! Questo è solo uno dei tanti modi in cui è possibile eseguire query di questo tipo!codice:SqlCommand cm = new SqlCommand(...) if(!string.IsNullOrEmpty(Nome.text)) cm.Parameters.Add(....)
![]()

Rispondi quotando