Mi immagino che hai fatto una cosa del genere:
if (primo.Checked){
elencoPersone.Add("Primo");
}else{
elencoPersone.Remove("Primo");
}
if (cristina.Checked){
elencoPersone.Add("Cristina");
}else{
elencoPersone.Remove("Cristina");
}
if (marco.Checked){
elencoPersone.Add("Marco");
}else{
elencoPersone.Remove("Marco");
}
Mi dici quale stringa hai usato ?
Questa :
strSQL = strSQL + elencoPersone.ElementAt(0) + " = 'Y'";
oppure questa :
strSQL = strSQL + elencoPersone.First() + " = 'Y'";
Per capire se la Query la scrive giusta devi provare a richiamare la funzione creaSQL e vedere cosa restituisce :
public void stampaStringaConsole(){
string strSQL = creaSQL(elencoPersone);
Console.WriteLine("Risultato query => " + strSQL);
}
esegui questa funzione e poi leggi nella Console il risultato e me lo puoi postare cosi posso verificare perché da errore?
TROVATO L'ERRORE DEVI MODIFICARE COSI IL CICLO DEL FOR :
Prima della modifica
//ciclo dalla seconda in poi
for (int i = 1; i < elencoPersone.Count-1; i++){
strSQL = addPersonSQL(strSQL , elencoPersone[i]);
}
Dopo la modifica :
//ciclo dalla seconda in poi
for (int i = 1; i < elencoPersone.Count; i++){
strSQL = addPersonSQL(strSQL , elencoPersone[i]);
}
Usa questo codice :
//Se è solo una persona
if(elencoPersone.Count == 1){
return strSQL + elencoPersone[0] + " = 'Y' ";
}
//altrimenti sono più di una persona
//Inserisco la prima persona
strSQL = strSQL + elencoPersone[0] + " = 'Y'";
//ciclo dalla seconda in poi
for (int i = 1; i < elencoPersone.Count; i++){
strSQL = addPersonSQL(strSQL , elencoPersone[i]);
}
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.imaginsystems.it
http://www.alpacasrl.it