Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Listbox: scelte multiple e inserimento nel database

  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,763

    Listbox: scelte multiple e inserimento nel database

    Ho un normale form per la registrazione composto da diversi campi, che non ho problemi a gestire, tranne uno: una ListBox che consente la scelta di più valori. Ecco il codice che gestisce l'inserimento:

    codice:
    
            {
                string connString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
                string a_UserIP = Request.ServerVariables["REMOTE_ADDR"];
                string userLoggedID = Session["ActiveUserID"].ToString();
                string a_InsertDate = DateTime.Now.ToShortDateString();
                string ClosingTime = a_Orario_Apertura.Text.ToString() + "-" + a_Orario_Chiusura.Text.ToString();
                string a_ProfileComplete = "1";
                {
                    try
                    {
                        using (SqlConnection conn = new SqlConnection(connString))
                        {
    
    
                            using (SqlCommand cmd = new SqlCommand("INSERT INTO Locale (UserId, RefererName, RefererSurname, RefererMail, RefererPhone, RefererMobilePhone, ActivityName, ActivityType, Regione, Provincia, Paese, Cap, Orario, Chiusura, Website, Phone, SmallDescription, Description, UserIP, InsertDate, FacebookPage, ActivityProfileComplete) VALUES(@UserID, @RefererName, @RefererSurname, @RefererMail, @RefererPhone, @RefererMobilePhone, @ActivityName, @ActivityType, @Regione, @Provincia, @Paese, @Cap, @Orario, @Chiusura, @Website, @Phone, @SmallDescription, @Description, @UserIP, @InsertDate, @FacebookPage, @ActivityProfileComplete)", conn))
                            {
                                foreach (ListItem item in a_ActivityType.Items)
                                {
                                    if(item.Selected)
                                    {
                                        Session["TipoLocale"] = item.Text;
                                        ListItem tipolocale = item;
                                    
                                    }
                                }
    
    
                                cmd.Parameters.AddWithValue("@UserID", userLoggedID.ToString());
                                cmd.Parameters.AddWithValue("@RefererName", r_Name.Text.ToString());
                                cmd.Parameters.AddWithValue("@RefererSurname", r_Surname.Text.ToString());
                                cmd.Parameters.AddWithValue("@RefererMail", r_Mail.Text.ToString());
                                cmd.Parameters.AddWithValue("@RefererPhone", r_Phone.Text.ToString());
                                cmd.Parameters.AddWithValue("@RefererMobilePhone", r_MobilePhone.Text.ToString());
                                cmd.Parameters.AddWithValue("@ActivityName", a_ActivityName.Text.ToString());
                                cmd.Parameters.AddWithValue("@ActivityType", Session["TipoLocale"]);
                                cmd.Parameters.AddWithValue("@Regione", a_Regione.SelectedItem.Text.ToString());
                                cmd.Parameters.AddWithValue("@Provincia", a_Provincia.SelectedValue.ToString());
                                cmd.Parameters.AddWithValue("@Paese", a_Paese.SelectedValue.ToString());
                                cmd.Parameters.AddWithValue("@Cap", a_Cap.Text.ToString());
                                cmd.Parameters.AddWithValue("@Orario", ClosingTime.ToString());
                                cmd.Parameters.AddWithValue("@Chiusura", a_Chiusura.Text.ToString());
                                cmd.Parameters.AddWithValue("@Website", a_Website.Text.ToString());
                                cmd.Parameters.AddWithValue("@Phone", a_Telefono.Text.ToString());
                                cmd.Parameters.AddWithValue("@SmallDescription", a_SmallDescription.Text.ToString());
                                cmd.Parameters.AddWithValue("@Description", a_Description.Text.ToString());
                                cmd.Parameters.AddWithValue("@UserIP", a_UserIP.ToString());
                                cmd.Parameters.AddWithValue("@InsertDate", a_InsertDate);
                                cmd.Parameters.AddWithValue("@FacebookPage", a_FbPage.Text.ToString());
                                cmd.Parameters.AddWithValue("@ActivityProfileComplete", a_ProfileComplete);
    
    
    
    
                                conn.Open();
                                int queryStatus = cmd.ExecuteNonQuery();
    
    
                                if (queryStatus != 0)
                                {
                                    Response.Write("Registrazione correttamente effettuata!");
                                }
                                else
                                    Response.Write("Problemi nella fase di registrazione.");
    
    
    
    
                            }
                        }
                    }
    
    
                    catch (SqlException KeyAlreadyExist)
                    {
                        Response.Write("Chiave duplicata!");
                    }
                }
            }

    Tra i vari parametri vorrei inserire, per l'appunto, quello relativo ad un ListBox che consente la scelta di più valori. Ho provato, ma nulla, prende solo ed esclusivamente un valore.
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,244
    Troverei strano il contrario: nel ciclo sovrascrivi ogni volta la session anzichè accodare i valori (perchè una session poi?)
    E, non capisco, a cosa serve la seconda istruzione nel ciclo?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,177
    non ho capito se devono essere piu' records (se l'utente seleziona piu' valori), oppure un solo record con il campo TIPO_LOCALE che contiene piu' cose (separate da virgola, ad esempio) ?

    (premesso che non ho capito se il dato è obbligatorio...cioe' se l'utente puo' inserire senza specificare il tipo locale)

    se è la prima ipotesi, la insert di tutto la devi fare NEL CICLO.

    se è la seconda ipotesi, basta fare una cosa tipo (vedi se va) Session["TipoLocale"] += item.Text.ToString() + ",";


  4. #4
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,763
    Un solo record con il TIPO_LOCALE che contiene diversi valori.
    Quote Originariamente inviata da djciko Visualizza il messaggio
    non ho capito se devono essere piu' records (se l'utente seleziona piu' valori), oppure un solo record con il campo TIPO_LOCALE che contiene piu' cose (separate da virgola, ad esempio) ?

    (premesso che non ho capito se il dato è obbligatorio...cioe' se l'utente puo' inserire senza specificare il tipo locale)

    se è la prima ipotesi, la insert di tutto la devi fare NEL CICLO.

    se è la seconda ipotesi, basta fare una cosa tipo (vedi se va) Session["TipoLocale"] += item.Text.ToString() + ",";

    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,177
    basta fare una cosa tipo

    Session["TipoLocale"] += item.Text.ToString() + ",";

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 © 2017 vBulletin Solutions, Inc. All rights reserved.