Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    8

    query di insert con un foreach tramite listbox

    Ciao a tutti,
    vorrei eseguire una query di insert per ogni elemento selezionato nella listbox.

    nel mio caso avrei bisogno di creare una riga in una tabella per ogni elemento selzionato che sarà poi anche un attributo della tabella.

    il codice che ho scritto è il seguente.. spero di essere stato chiaro con la spiegazione..


    codice:
    foreach (int servizio in list_servizi.SelectedValue)
                {
                    string qry_insert = "INSERT INTO Segnalazione VALUES ('" + tb_oggetto.Text + "', getdate(), getdate() + 15, NULL, '" + tb_desc.Text.Replace("'", "''") + "', '" + tb_oss.Text + "', '" + tb_risposta.Text + "', (SELECT id_stato FROM Stato WHERE descrizione_stato = '" + tb_stato.Text + "')," + servizio + ", '" + ddl_quartiere.SelectedValue + "', '" + tb_allegati.Text + "', '" + ddl_mittente.SelectedValue + "', '" + ddl_progetto.SelectedValue + "')";
                    SqlConnection conn = new SqlConnection(source);
    
                    try
                    {
                        conn.Open();
    
                        SqlCommand cmd = new SqlCommand(qry_insert, conn);
                        cmd.ExecuteNonQuery();
                    }
                    catch (SqlException ex)
                    {
                        string c = ex.Message;
                        Response.Write(ex.ToString());//visualizza l'eventuale errore 
                        Response.End();
                    }
                }
    Il problema è che mi esegue solo un insert con il primo valore evidenziato nella listbox tralasciando gli altri...

    qualcuno puo aiutarmi??? grazie mille in anticipo!!!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi fare un po' di debug e verificare cosa contiene la stringa "qry_insert" ad ogni passaggio...
    Inoltre, a rigor di logica, la connessione dovresti aprirla fuori dal ciclo, ed al suo interno eseguirla e chiuderla alla fine, fuori dal ciclo.

    Roby

  3. #3
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    8

    problema risolto

    Ho trovato il problema.

    se facevo
    codice:
    foreach(int servizio in list_servizi.SelectedItems)
    mi prendeva solo il primo valore selezionato..

    ho risolto in questo modo:

    codice:
    foreach (ListItem servizio in list_servizi.Items)
                {
                    if (servizio.Selected)
                    {
                        string qry_insert = "INSERT INTO Segnalazione .....";
                        SqlConnection conn = new SqlConnection(source);
                          
                          . . . . . . . . .
                     }
                  }
    Grazie cmq dei consigli!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.