Query particolari su datasource

giovedì 15 aprile 2010 - 18.45

Gemini Profilo | Expert

Ciao a tutti
ho creato un progetto al quale ho associato un datasource dal menu Dati-->Aggiungi una origine dati
E' la prima volta che associo un database ad un progetto in questo modo.
Ora ho tutte le tabelle del mio database e ad ogni tabella posso associare una query.
La mia domanda è questa: come faccio a creare una query di questo tipo:

string sqlCognome = string.Empty;
if (cognome != string.Empty) sqlCognome = " AND i.cognome like '%" + cognome + "%' ";

string sqlComuneStudio = string.Empty;
if (comune_studio != string.Empty) sqlComuneStudio = " AND i.localita='" + comune_studio + "' ";


string sql = "SELECT * " +
"FROM iscritti " +
"WHERE 1 " + sqlCognome + sqlComuneStudio;

Cioè, come faccio a costruire una query che dipende da un certo numero di condizioni?
Un articolo che mi spieghi come creare le query?
Grazie mille

Gluck74 Profilo | Guru

dovresti usare i parametri piuttosto che la concatenazione di stringhe.
usa un SQLDataSource ed il suo wizard che ti fa praticamente tutto da solo.

Prova a cercare su google vedrai che troverai un sacco di esempi, altrimenti fai un fischio e vediamo meglio l'argomento.

ciao

Anonimo Profilo | Senior Member

Il tuo metodo è corretto, anche se per sicurezza sono sempre meglio i sqlParameter. Puoi concatenare un sacco di stringhe per realizzare la tua query dinamicamente come più ti aggrada ma tieni conto di due aspetti, ogni volta che concateni di fatto .net crea una nuova istanza di stringa e butta via la precedente quindi sprechi memoria, se usi i sqlparameter inoltre garantisci che non possono avvenire eventuali attacchi di sql injection da parte di malintenzionati.

Per eseguire la tua query infine basta che apri una sqlconnection, crei un sqlcommand passando la connessione e la query, con il comando executeReader o executeScalar ottieni i dati che cerchi.

Gluck74 Profilo | Guru

Quì trovi un esempio per usare i parametri da codice:

http://dotnethell.it/forum/messages.aspx?ThreadID=33770
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